pm2指定端口

发布于 2022-09-07 23:17:34 字数 109 浏览 15 评论 0

pm2能否指定端口

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独患者 2022-09-14 23:17:34

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

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
高冷爸爸 2022-09-14 23:17:34

可以在 pm2 的配置文件里设置端口号,请参考官方文档:http://pm2.keymetrics.io/docs...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文