ecosystem.config.cjs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const path = require("path");
  2. /**
  3. * PM2 多环境说明:
  4. * - jchl-test / jchl-prod:默认 `PORT=4000`,与 `server.js`、Nginx 反代常见配置一致;改端口时请同步 Nginx upstream。
  5. *
  6. * 端口可在下面 env 中改,或由服务器上的 .env.production / 系统环境变量覆盖。
  7. * 敏感信息不要写进本文件,用 PM2 --env 或服务器环境变量注入。
  8. *
  9. * NEXT_PUBLIC_*(如 API 地址)在 next build 时已打入前端包;PM2 里再改不会更新浏览器里的接口域名。
  10. * 测试 / 生产请分别用 npm run build:test 与 npm run build,或在构建前注入相同的环境变量。
  11. *
  12. * 若 API 使用 __ORIGIN__(与站点同源),服务端渲染发请求时还需在构建或运行环境提供
  13. * NEXT_PUBLIC_SITE_URL(例如 https://你的前端域名),否则服务端拿不到页面域名。
  14. *
  15. * 主业务 / 汇款端口由 Next rewrites 决定:`API_PROXY_TARGET` → 如 :8005,`API_PROXY_TARGET_REMITTANCE` → 如 :8504。
  16. * 这两项在 **next build** 时读入 next.config;打包流水线或本机构建前需注入,与公网域名解耦。
  17. */
  18. module.exports = {
  19. apps: [
  20. {
  21. name: "jchl-test",
  22. cwd: path.resolve(__dirname),
  23. script: "server.js",
  24. interpreter: "node",
  25. instances: 1,
  26. exec_mode: "fork",
  27. autorestart: true,
  28. watch: false,
  29. max_memory_restart: "800M",
  30. env: {
  31. NODE_ENV: "production",
  32. PORT: 4000,
  33. },
  34. },
  35. {
  36. name: "jchl-prod",
  37. cwd: path.resolve(__dirname),
  38. script: "server.js",
  39. interpreter: "node",
  40. instances: 1,
  41. exec_mode: "fork",
  42. autorestart: true,
  43. watch: false,
  44. max_memory_restart: "1G",
  45. env: {
  46. NODE_ENV: "production",
  47. PORT: 4000,
  48. },
  49. },
  50. ],
  51. };