线上部署 React 文件
在安装以前,我们最好先更新一下系统,并安装可能用到的基础包。通过 sudo 命令来安装这些系统包:
sudo apt-get update
sudo apt-get install vim openssl build-essential libssl-dev wget curl git
还是之前安装 npm 时候的原因,为了保证更快、更稳定的安装速度,我们也可以采用 cnpm 来替代 npm 下载包信息:
安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install v15.5.1
node -v
npm --registry=https://registry.npm.taobao.org install -g cnpm
cnpm -v
4.2.0cnpm 有 15 分钟的同步周期,有时候会遇到你需要的模块 cnpm 上不是最新的,怎么办呢?可以通过 sync 命令来同步,同步以后,就可以用 cnpm 安装了。
cnpm sync koa好了,Node.js 安装完了,我们再顺手把一些常用的全局工具包安装一下吧:
npm install pm2 -g至此 Node.js 的环境就安装好了,下一节我们就来安装数据库的环境。
Nginx
sudo vi /etc/nginx/conf.d/imooc-com-4321.conf
# 通过 upstream 我们可以设定一个简单的负载均衡策略,以应对将来可能的升级
# 首先定义一个 server 集群 gougou,里面可以加多个 server,每个 server 对应的值可以用域名,也可以直接用 IP,但我们通常不会用 IP 来访问,而是通过域名:
upstream imooc {
server 127.0.0.1:4321;
}
server {
listen 80;
server_name deploy-static.iblack7.com;
# Gzip Compression
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
location / {
# remote_addr 代表客户端的 IP
proxy_set_header X-Real-IP $remote_addr;
# proxy_add_x_forwarded_for 获取真实的 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# http_host 表示请求的 host 头
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# proxy_pass 指令实现代理。把域名代理到集群名上面
proxy_pass http://imooc;
proxy_redirect off;
}
}
保存后,通过 sudo nginx -t 来验证配置是否正确,有没有语法错误,然后我们把 Nginx 的服务重启一下。
sudo service nginx restart
再把 URL 中的端口号去掉,我们访问下:
http://deploy-static.iblack7.com
当里个当,我们大功告成!
/www/user-circle/production/current/dist;
查看 nginx 进程
ps -ef |grep nginx
netstat -ntpl
sudo vi /etc/nginx/conf.d/user-circle-8080.conf
apps:
- script: app.js
name: UserCircle
env:
COMMON_VARIABLE: true
env_production:
NODE_ENV: production
deploy:
production:
user: root
host:
- 47.102.255.84
port: '7822'
ref: origin/master
repo: git@gitee.com:chelsechen/user-circle.git
path: /www/user-circle/production
ssh_options: StrictHostKeyChecking=no
pre-deploy: git fetch --all
post-deploy: 'cnpm install && cnpm run build&&pm2 startOrRestart ecosystem.yaml --env production'
env:
NODE_ENV: productionssh -p 7822 root@47.102.255.84
pm2 deploy ecosystem.yaml production