本文共 1625 字,大约阅读时间需要 5 分钟。
访问PM2官方文档:http://pm2.keymetrics.io/
在项目根目录下新建ecosystem.config.js文件,并将其推送到远端仓库。记得删除.gitignore中的node_modules条目,并在远端同步。
module.exports = { apps: [{ name: 'blogserver', script: './code/server/index.js', env: { "NODE_ENV": "production" } }], deploy: { production: { user: 'root', host: ['47.94.208.76'], port: '8290', ssh_options: 'StrictHostKeyChecking=no', ref: 'origin/master', repo: 'git@gitee.com:tian_zz/blog.git', path: '/www/my-blog/blogserver', post_deploy: 'npm install --registry=https://registry.npm.taobao.org && pm2 startOrRestart ecosystem.config.js --env production' } }} 在阿里云服务器根目录执行以下命令:
mkdir /wwwcd /wwwmkdir my-blogcd my-blog
在本地运行以下命令,完成部署并推送代码到服务器:
pm2 deploy ecosystem.config.js production
在服务器端可以通过以下命令查看PM2进程状态:
pm2 list
如果发现模块加载错误,请进入/www/my-blog/blogserver/source目录,安装缺失的依赖:
npm install
然后重新部署:
pm2 deploy ecosystem.config.js production
在阿里云后台添加域名记录,通常需要等待解析完成后才能生效。
如果本地后端服务监听3000端口,需在服务器防火墙中允许该端口:
firewall-cmd --zone=public --add-port=3000/tcp --permanentfirewall-cmd --permanent --list-portfirewall-cmd --reload
配置Nginx将3000端口的流量转发至服务器80端口:
upstream locusy { server 127.0.0.1:3000;}server { listen 80; server_name www.locusy.top; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://locusy; proxy_redirect off; }} 完成后重启Nginx:
nginx -s reload
以上步骤完成后,服务器即可正常运行PM2服务,确保代码及依赖正确同步。
转载地址:http://zzxfk.baihongyu.com/