小程序我爱编程

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

2018-02-14  本文已影响0人  bc75e9625165

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配置完成。

上一篇下一篇

猜你喜欢

热点阅读