如何通过PM2的ecosystem.config.js配置Nuxt应用自定义域名和端口运行
解决方案
方式1:直接在PM2配置中透传启动参数
直接将你要的hostname和port参数写入ecosystem.config.js,和你原有devhost脚本效果完全一致,配置示例如下:
module.exports = { apps: [ { name: "nuxt-app", script: "./node_modules/.bin/nuxt", args: "--hostname my.url.domain --port 8080", // 以下为可选通用配置 instances: 1, autorestart: true, watch: false, max_memory_restart: "1G" } ] }
如需允许所有外部机器访问,可将hostname替换为
0.0.0.0,监听所有网卡请求。
方式2:正确调用package.json自定义脚本
你之前配置失败的原因是npm执行自定义脚本需要补充run参数,修正后的配置如下:
module.exports = { apps: [ { name: "nuxt-app", script: "npm", args: "run devhost", instances: 1, autorestart: true, watch: false } ] }
方式3:固定参数到Nuxt全局配置(可选兜底方案)
如果不想每次启动都传参,可直接在nuxt.config.js中配置固定的服务监听参数:
export default { // 原有配置保留,新增server配置项 server: { host: "my.url.domain", port: 8080 } }
配置后直接用PM2官方默认的启动配置即可,不需要额外传参数。
配置生效验证:先执行pm2 delete 原有Nuxt进程名删除旧进程,再执行pm2 start ecosystem.config.js启动新进程,执行pm2 logs查看启动日志,确认监听地址符合预期即可。
内容的提问来源于stack exchange,提问作者Cacious
相关产品推荐
相关产品推荐

