美文网首页云服务
腾讯云服务器环境搭建笔记

腾讯云服务器环境搭建笔记

作者: 地平线0530 | 来源:发表于2019-02-26 21:18 被阅读0次

    控制台基本配置

    腾讯云的使用说明还是很详细和通俗的,链接附在下面:

    腾讯云官方文档平台

    1. 选择安装系统

    系统安装

    我这里选择了最新的 CentOS7.5,大概等10分钟左右系统安装完毕。

    2. 更改密码 & 使用SSH密钥

    我们首先更改初始密码,但是除了密码登录方式外,还有一种更为便捷和安全的方式,就是使用SSH秘钥进行登录。

    创建 SSH 密钥

    创建密钥

    这里选择创建密钥,然后选择创建新密钥对。输入密钥名称确定,这时会弹出下载提示,请在10分钟内下载(保存好,后面还要用)。

    密钥绑定服务器

    选中刚才创建的密钥,点击绑定实例,选择自己的服务器后确定,之后按照提示操作就可以了。

    3. 创建安全组

    我们可以配置安全组,来控制哪些端口是可以外网访问的。

    创建安全组 新建安全组

    我这里选择了系统的默认模板,如果有需要,还可以修改规则。

    配置好安全组后,点击右侧管理实例 → 新增关联 → 选择自己的服务器 确定关联就可以了。

    远程连接

    我们使用 PuTTY 连接云服务器:

    1. 安装 PuTTY

    下载PuTTY

    安装好 PuTTY 后,可以看到这两个软件:

    截图

    接下来我们就要用的这两个软件。

    2. 密钥转换

    打开 PuTTYgen ,加载我们前面下载的密钥文件,然后在 key comment 栏中输入密钥名,输入加密私钥的密码,单击【Save private key】,在弹窗中选择要保存的地方保存。

    截图 截图

    3. 连接服务器

    打开 PuTTY,然后按图示操作:

    截图

    如上图找到 SSH → Auth 选项,加载刚才用 PuTTYgen 转换过的密钥

    截图

    然后点击 Seesion 输入云服务器的 IP 地址,点击 Save 保存,方便下次直接访问,最后点击 Open 打开。

    截图

    直接输入:root 即可远程登录服务器了。

    更新系统及软件

    yum update -y
    

    腾讯云安装的系统自带了 net-tools 和 vim 等软件,这里就不安装了,如果没有,建议安装一下。

    yum install vim
    yum install net-tools
    

    node 安装

    1. 添加源

    curl -sL https://rpm.nodesource.com/setup_10.x | bash -
    

    2. 安装

    yum install nodejs -y
    

    3. 安装 cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    

    参考:https://github.com/nodesource/distributions

    nginx 安装

    1. 添加源

    创建文件:

    vim /etc/yum.repos.d/nginx.repo
    

    添加如下内容:

    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    

    参考:http://nginx.org/en/linux_packages.html

    2. 安装

    yum install nginx -y
    

    3. 运行

    nginx
    

    此时可以在浏览器输入你的云服务器 ip 地址查看有没有反应了。如果有显示,恭喜你可以进行接下来的配置了。如果没有,就看看nginx是否安装成功,服务器防火墙是否关闭,安全组有没有配置好。

    4. 常用命令

    // 启动
    nginx
    systemctl start nginx.service
    
    // 停止
    nginx -s stop  // 立即停止
    nginx -s quit  // 从容停止
    killall nginx  // 杀死进程
    systemctl stop nginx.service
    
    // 重启
    systemctl restart nginx.service
    
    // 重新载入配置
    nginx -s reload
    
    // 查看进程
    ps aux | grep nginx
    
    // 查看开启的端口
    netstat -tlnp
    

    mongodb 安装

    1. 添加源

    新建文件:

    vim /etc/yum.repos.d/mongodb-org-4.0.repo
    

    添加如下内容:

    [mongodb-org-4.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
    

    2. 安装

    yum install -y mongodb-org
    

    3. 常用命令

    service mongod start  // 启动
    service mongod stop  // 关闭
    service mongod restart  // 重启
    chkconfig mongod on  // 验证是否启动
    
    // centos7 建议使用如下命令
    systemctl start mongod.service  // 启动
    cat /var/log/mongodb/mongod.log  // 验证是否成功启动
    ystemctl enable mongod.service  // 设置开机启动
    systemctl stop mongod.service  // 关闭
    systemctl restart mongod.service  // 重启
    

    官网说明

    服务器配置

    1. 新建目录

    /data 目录下新建如下目录:

    • www/blog 用于存放博客站文件
    • mongo/db 用于存放数据库文件
    • mongo/log 用于存放数据库log文件

    mongo/log 目录下新建 mongod.log 文件

    2. nginx配置

    创建新用户 www,并让nginx也使用该用户:

    groupadd www  // 创建用户
    
    chown www:www /data  // 添加用户权限
    

    打开 nginx 主配置文件:

    vim /etc/nginx/nginx.conf
    

    做如下修改:

    user  www;  // 默认用户修改为 www
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    
    

    打开 nginx server配置文件:

    vim /etc/nginx/conf.d/default.conf
    

    做如下修改:

    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /data/www;  // 网站文件存放目录
            index  index.html index.htm;
            proxy_set_header host $host;  // 重定义请求头host为转发的host
            proxy_pass http://localhost:3000/;  // 端口转发
            proxy_cookie_domain localhost xxx.xxx.xxx.xxx;  // 使转发的cookie到新的域名
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    

    注意上面的这三项配置:

    proxy_set_header host $host;
    proxy_pass http://localhost:3000/;
    proxy_cookie_domain localhost xxx.xxx.xxx.xxx; 
    

    因为博客项目将以 node 为服务器程序,它将占用 3000 端口,而用户端不能访问服务器的 3000 端口,因此需要用 nginx 进行转发。

    nginx 转发后,其请求头将是 localhost:3000 ,这是我们不想让客户看到的,所以需要用 proxy_set_header host $host; 将请求头转换为我们的域名。

    我们的网站会在用户端存储一些cookie,这个也需要重新定位,否则用户端将接收不到这些cookie,这里使用 proxy_cookie_domain localhost xxx.xxx.xxx.xxx; 将cookie重新定位,xxx.xxx.xxx.xxx 是我们的域名。

    完成以上配置后,我们输入以下命令,重新加载配置项:

    nginx -s reload
    

    3. 数据库配置

    打开 mongodb 配置文件:

    vim /etc/mongod.conf
    

    进行如下配置:

    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path: /data/mongo/log/mongod.log  // log文件位置
    
    # Where and how to store data.
    storage:
      dbPath: /data/mongo/db  // 数据存储目录
      journal:
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # how the process runs
    processManagement:
      fork: true  # fork and run in background
      pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
      timeZoneInfo: /usr/share/zoneinfo
    
    # network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
    
    # security:
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options
    
    #auditLog:
    
    #snmp:
    

    保存以后,给 /data/mongo 及其子目录下所有文件添加用户:mongod

    chown -R mongod:mongod mongo
    

    此时输入命令运行数据库:

    systemctl start mongod.service
    

    如果提示错误,缺少 pid 文件,则进入目录 /var/run/mongodb 新建文件 mongod.pid

    touch mongod.pid
    

    重启数据库即可:

    systemctl restart mongod.service
    

    4. 数据库添加用户、开启验证

    连接数据库:

    mongo
    

    添加用户:

    // 超级管理员
    use admin
    
    db.createUser({
      user: 'root',  // 用户名
      pwd: 'password',  // 密码
      roles:[{
        role: 'root',
        db: 'admin'
      }]
    })
    
    use blog  // 创建数据库 blog,并切换到 blog
    
    // blog管理员,用于创建集合,管理数据库,添加删除blog用户等的操作
    db.createUser({
      user: 'blogadmin',
      pwd: 'password',
      roles:[{
        role: 'dbOwner',
        db: 'blog'
      }]
    })
    
    
    // blog用户,用户端用于连接数据库的用户,只有读写操作的权限
    db.createUser({
      user: 'blog',
      pwd: 'password',
      roles:[{
        role: 'readWrite',
        db: 'blog'
      }]
    })
    

    打开配置文件:

    vim /etc/mongod.conf
    

    找到如下语句,并做修改:

    # security:
    
    // 修改为:
    security:
      authorization: enabled  // 开启验证
    

    本来想远程用可视化软件连接数据库的,但是尝试了几种网上的办法均告失败,不过几条数据通过命令行就能搞定,多条数据就用我的笨办法:本地写好js文件,然后上传到服务器,node运行一下。

    5. 上传文件

    下载安装WinSCP

    WinSCP下载地址

    新建站点:

    WinSCP

    选择高级,添加我们的SSH密钥,填写服务器 IP 地址,服务器的用户名然后保存。在左侧列表中选中保存的站点,登录就可以了。

    直接把我们打包好的文件拖进右侧对应目录即可:(打包时注意一些链接要改为我们现在的服务器ip或者域名)

    截图

    在 PuTTY 进入目录 /data/www/blog 输入命令安装项目的依赖:

    npm i  // 或者 cnpm i
    

    安装完成后,运行:

    node index.js
    

    然后在浏览器输入服务器 IP,这时就可以正常访问我们的网站了。

    相关文章

      网友评论

        本文标题:腾讯云服务器环境搭建笔记

        本文链接:https://www.haomeiwen.com/subject/nknzyqtx.html