博客
关于我
pm2通过配置文件部署nodejs代码到服务器
阅读量:794 次
发布时间: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/

你可能感兴趣的文章