const path = require("path"); /** * PM2 多环境说明: * - jchl-test / jchl-prod:默认 `PORT=4000`,与 `server.js`、Nginx 反代常见配置一致;改端口时请同步 Nginx upstream。 * * 端口可在下面 env 中改,或由服务器上的 .env.production / 系统环境变量覆盖。 * 敏感信息不要写进本文件,用 PM2 --env 或服务器环境变量注入。 * * NEXT_PUBLIC_*(如 API 地址)在 next build 时已打入前端包;PM2 里再改不会更新浏览器里的接口域名。 * 测试 / 生产请分别用 npm run build:test 与 npm run build。 * build:test 读取 .env.development(含 API_PROXY_TARGET 等),再执行 next build。 * * 若 API 使用 __ORIGIN__(与站点同源),服务端渲染发请求时还需在构建或运行环境提供 * NEXT_PUBLIC_SITE_URL(例如 https://你的前端域名),否则服务端拿不到页面域名。 * * 主业务 / 汇款端口由 Next rewrites 决定:`API_PROXY_TARGET` → 如 :8005,`API_PROXY_TARGET_REMITTANCE` → 如 :8504。 * 这两项在 **next build** 时读入 next.config;打包流水线或本机构建前需注入,与公网域名解耦。 */ module.exports = { apps: [ { name: "jchl-test", cwd: path.resolve(__dirname), script: "server.js", interpreter: "node", instances: 1, exec_mode: "fork", autorestart: true, watch: false, max_memory_restart: "800M", env: { NODE_ENV: "production", PORT: 4000, }, }, { name: "jchl-prod", cwd: path.resolve(__dirname), script: "server.js", interpreter: "node", instances: 1, exec_mode: "fork", autorestart: true, watch: false, max_memory_restart: "1G", env: { NODE_ENV: "production", PORT: 4000, }, }, ], };