pm2通过配置文件部署nodejs代码到服务器
2024-08-30 23:50:38
一、pm2文档地址:
http://pm2.keymetrics.io/
二、在本地项目下新建ecosystem.config.js文件,并且推送到远端(记得node_modules这个文件夹也得推送,在.gitignore里面删除):
module.exports = {
apps: [{
name: "blogserver",
script: "./code/server/index.js",
env: {
"NODE_ENV": "production"
},
env_production: {
"NODE_ENV": "production"
}
}],
deploy: {
production: {
user: "root",
host: ["47.94.208.76"],
port: "8290",
// SSH options with no command-line flag, see 'man ssh'
// can be either a single string or an array of strings
ssh_options: "StrictHostKeyChecking=no",
// GIT remote/branch
ref: "origin/master",
// GIT remote
repo: "git@gitee.com:tian_zz/blog.git",
// path in the server
path: "/www/my-blog/blogserver",
"post-deploy": "npm install --registry=https://registry.npm.taobao.org && pm2 startOrRestart ecosystem.config.js --env production",
env: {
"NODE_ENV": "production"
}
},
}
}
三、在服务器端根目录新建文件夹/www/my-blog/
mkdir /www
cd /www
mkdir my-blog
cd my-blog
四、在本地运行pm2命令,通过配置文件连接服务器,并且通知服务器拉取代码:
1、本地 pm2 deploy ecosystem.config.js production setup
2、服务器端会看到多出的文件夹:
五、在本地运行pm2:
pm2 deploy ecosystem.config.js production
六、在服务器端可以看到pm2运行的进程:
pm2 list
发现报错,打印下日志:pm2 logs blogserver
没有找到模块,进入服务器/www/my-blog/blogserver/source目录:npm install 安装包,再回到本地重新部署一下 pm2 deploy ecosystem.config.js production,回到服务器:部署成功。
七、在阿里云后台添加域名记录,需要时间生效:
八、如果本地后端是在3000端口下,在防火墙允许3000端口访问:
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --permanent --list-port
firewall-cmd --reload
九、配置nginx代理,将3000端口转发到服务器的80端口
cd /etc/nginx/conf.d
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_set_header X-Nginx-Proxy true; proxy_pass http://locusy;
proxy_redirect off; }
}
重启nginx:nginx -s reload
最新文章
- iOS 根据银行卡号判断银行名称
- 锤子手机T2 屏幕录像文件保存在哪里?
- Disable the screen switching about VI
- ClassLoader,Thread.currentThread().setContextClassLoader,tomcat的ClassLoader
- php练习4——排序,查找
- phpexcel导入数据库 基于thinkphp3.2
- delphi XML 原来可以玩接口
- AIDE支持实时错误检查、代码重构、代码智能导航、生成APK
- Robots协议
- 浅谈Nginx负载均衡原理与实现
- js中的深拷贝与浅拷贝
- python第十一天
- 浅谈php
- volatile 关键字了解与使用
- LeetCode(36): 有效的数独
- CAD中的各种Polyline
- SSH(Struts、Spring、Hibernate)三大框架整合
- Net Web Api Route
- github在版本库中删除某个文件的所有历史记录
- Windows降权