从零部署阿里云服务器(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配置完成。