美文网首页小程序我爱编程
从零部署阿里云服务器(node.js+Mysql+Nginx+h

从零部署阿里云服务器(node.js+Mysql+Nginx+h

作者: bc75e9625165 | 来源:发表于2018-02-14 16:33 被阅读0次

    1.ssh远程登录服务器

     ssh root@ip地址
    

    2.部署node.js环境

    (1)升级CentOS
    yum -y update
    
    (2)安装gcc gcc-c++(编译的时候需要用到)
    yum install gcc 
    yum install gcc-c++
    
    (3)跳转到 /usr/local/src , 这个文件夹通常用来存放软件源代码
    cd /usr/local/src
    
    (4)下载源代码包,解压
    wget http://nodejs.org/dist/node-latest.tar.gz
    tar -xzvf node-latest.tar.gz
    
    (5)进入文件夹,执行配置脚本来进行编译预处理
    cd node-v9.4.0
    ./configure
    
    (6)编译源代码,这里时间较长,大概30分钟左右
    make
    
    (7)当编译完成后,需要使之在系统范围内可用, 编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下
    make install
    
    (8)全局安装pm2
    npm -g install pm2
    
    (9)建立超级链接, 不然 sudo node 时会报 “command not found”
    sudo ln -s /usr/local/bin/node /usr/bin/node
    sudo ln -s /usr/local/lib/node /usr/lib/node
    sudo ln -s /usr/local/bin/npm /usr/bin/npm
    sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
    sudo ln -s /usr/local/bin/pm2 /usr/bin/pm2
    
    (10)通过命令查看node、npm版本来判断是否安装成功。
    node -v
    npm -v
    
    至此,node.js环境配置完成。

    3.安装Mysql

    (1)安装rpm包
    rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
    (2)安装mysql
    yum -y install mysql-community-server
    
    (3)加入开机启动
    systemctl enable mysqld
    
    (4)启动MySQL服务进程
    systemctl start mysqld
    
    (5)配置root用户密码
    mysql_secure_installation
    
    (6)进入数据库
    mysql -u root -p
    
    (7)修改mysql库的user表,允许远程连接数据库(注意生产服务器不要这样做)
    use mysql;
    select host, user from user;
    update user set host = '%' where user = 'root';
    select host, user from user;
    exit
    
    (8)重启mysql
    service mysqld restart
    
    至此,mysql安装配置完成。

    4.Certbot获取免费https证书

    (1)获取certbot
    cd /usr/local/src/
    wget https://dl.eff.org/certbot-auto
    chmod a+x certbot-auto
    
    (2)生成证书(多个域名-d追加)
    ./certbot-auto certonly --standalone --email leochensj@163.com --agree-tos -d leochensj.com -d leochensj.cn
    
    (3)查看证书
    ls /etc/letsencrypt/live/
    

    至此,https证书申请完成。

    5.Nginx安装和配置

    (1)Nginx安装
    yum install nginx -y
    
    (2)在nginx配置证书

    在/etc/nginx/conf.d/新建配置文件ssl.conf(文件名随意,后缀必须是conf)

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    
    server {
        listen 443;
        server_name leochensj.com;
    
        # ssl 配置
        ssl on;
        ssl_certificate /etc/letsencrypt/live/leochensj.com/fullchain.pem;#证书位置
        ssl_certificate_key /etc/letsencrypt/live/leochensj.com/privkey.pem;#私钥位置
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
    
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
    }
    

    把外部访问的https的443端口转到本地的8080端口

    (3)启动Nginx
    service nginx start
    service nginx stop
    service nginx reload
    

    可以用命令查看netstat -ntlp | grep :80

    (4)自动更新https证书

    Let’s Encrypt 生成的免费证书为3个月时间,但是我们可以无限次续签证书
    编写更新脚本renew-cert.sh

    #!/bin/bash
    
    # 停止nginx
    service nginx stop
    
    # 续签
    # --force-renew 强制更新
    /usr/local/src/certbot-auto renew --force-renew
    
    # 启动nginx
    service nginx start
    

    每隔两个月运行一次脚本

    a+x renew-cert.sh
    4 1 /2 /root/renew-cert.sh >> /root/crontab.log 2>&1
    

    至此,Nginx配置完成。

    相关文章

      网友评论

        本文标题:从零部署阿里云服务器(node.js+Mysql+Nginx+h

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