博客
关于我
pm2通过配置文件部署nodejs代码到服务器
阅读量:804 次
发布时间: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 列表解析 大文件
查看>>
python 列表转字典方法
查看>>
Python 列表(List)概述-ChatGPT4o作答
查看>>
Python网络爬虫基础进阶到实战教程
查看>>
Python 初学者需要知道的四条建议
查看>>
Python 判断字符串是否包含子字符串
查看>>
python 判断当前时间是否为零点
查看>>
python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
查看>>
python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
查看>>
python 利用pyttsx3文字转语音
查看>>
python 利用已有Ner模型进行数据清洗合并
查看>>
python 到大数据开发工程师_如何成为一个大数据开发工程师?
查看>>
python 加密解密(base64, AES)
查看>>
Python 包管理器和 Node.js
查看>>
Python 单词字母顺序不变且所有倒排
查看>>
python 反射机制
查看>>
python 启动提示IDLE's subprocess didn't make conne...
查看>>
python 命令接口_实现“[命令][操作][参数]”样式的命令行接口?
查看>>
Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
查看>>
Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
查看>>