博客
关于我
pm2通过配置文件部署nodejs代码到服务器
阅读量:805 次
发布时间:2023-03-02

本文共 1625 字,大约阅读时间需要 5 分钟。

PM2部署指南

1. 获取PM2文档

访问PM2官方文档:http://pm2.keymetrics.io/

2. 配置本地项目

在项目根目录下新建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'    }  }}

3. 服务器目录结构

在阿里云服务器根目录执行以下命令:

mkdir /wwwcd /wwwmkdir my-blogcd my-blog

4. 本地部署与服务器同步

在本地运行以下命令,完成部署并推送代码到服务器:

pm2 deploy ecosystem.config.js production

5. 验证部署

在服务器端可以通过以下命令查看PM2进程状态:

pm2 list

如果发现模块加载错误,请进入/www/my-blog/blogserver/source目录,安装缺失的依赖:

npm install

然后重新部署:

pm2 deploy ecosystem.config.js production

6. 域名配置

在阿里云后台添加域名记录,通常需要等待解析完成后才能生效。

7. 防火墙配置

如果本地后端服务监听3000端口,需在服务器防火墙中允许该端口:

firewall-cmd --zone=public --add-port=3000/tcp --permanentfirewall-cmd --permanent --list-portfirewall-cmd --reload

8. Nginx反向代理

配置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/

你可能感兴趣的文章
python | six,一个神奇的 Python 库!
查看>>
Python读取图片的几种方法供net使用
查看>>
python | spacy,一个神奇的 Python 库!
查看>>
python | sqlmap,一个实用的 Python 库!
查看>>
python | sumy,一个超酷的 用于文本摘要的 Python 库!
查看>>
python | tiler,一个不可思议的 图像切片重组 Python 库!
查看>>
python | tinydb,一个非常厉害的 关于数据库的 Python 库!
查看>>
python | tox,一个超强的 自动化测试工具 Python 库!
查看>>
python | ttkbootstrap,一个神奇的 Python 库!
查看>>
python | unoconv,一个超厉害的 Python 库!
查看>>
python | urllib3,一个超强的 Python 库!
查看>>
python | webassets,一个超强的 Python 库!
查看>>
python | werkzeug,一个不可思议的 Python 库!
查看>>
python | xlsxwriter,一个实用的 Python 库!
查看>>
python | xlwings,一个非常实用的 Excel 相关的 Python 库!
查看>>
python | xmltodict,一个非常厉害的 关于XML数据 Python 库!
查看>>
python | xonsh,一个超酷的 Python 库!
查看>>
python | yagmail,一个实用的 Python 库!
查看>>
python | 一文掌握Python的上下文管理器和with语句
查看>>
python | 一文看懂Python闭包机制与变量作用域规则
查看>>