pm2指定端口

pm2能否指定端口

如果直接使用node server.js在项目里面指定端口号是可以得
但是在pm2里面,每次重启就随机分配一个端口号给我
请问有分配项目端口号的办法吗

阅读 27.4k
2 个回答

问题已经解决了,方向搞错了。

pm2的的端口和实际项目里定义的端口没有直接关系,主要是pm2启动的项目中获取env的设置方式和node_env的设置不通用

解决方案,这里记录一下以便以后再踩坑

项目里面使用了env来定义项目运行的环境,这里项目使用了3个环境

目录结构
├── config
    ├── config.development.json
    ├── config.production.json 
    ├── config.test.json
    ├── index.js

index.js

module.exports = require(require('path').join(__dirname, ['config', process.env.NODE_ENV || 'development', 'json'].join('.')));

由于在linux中设置的环境变量是node_env里面的环境变量,所以直接使用node server.js来运行项目是没有问题的

而在pm2中获取 process.env.NODE_ENV 必须在pm2启动项目的时候 --env

测试服务器用的env是test

#cd 到项目目录,其中--name用来指定项目别名 --env用来指定NODE_ENV的环境变量 --watch代码变化自动重启
pm2 start server.js --name app --env test --watch
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题