ALIEZ 1 місяць тому
батько
коміт
1ac44efe43
2 змінених файлів з 8 додано та 6 видалено
  1. 4 4
      ecosystem.config.cjs
  2. 4 2
      server.js

+ 4 - 4
ecosystem.config.cjs

@@ -2,9 +2,9 @@ const path = require("path");
 
 /**
  * PM2 多环境说明:
- * - jchl-test / jchl-prod:默认监听 `PORT=3000`(与 `server.js` 一致);需沿用 :4000 时在 PM2 或系统环境中显式设置 `PORT`
+ * - jchl-test / jchl-prod:默认 `PORT=4000`,与 `server.js`、Nginx 反代常见配置一致;改端口时请同步 Nginx upstream
  *
- * 端口可在下面 env 中改(默认 3000),或由服务器上的 .env.production / 系统环境变量覆盖。
+ * 端口可在下面 env 中改,或由服务器上的 .env.production / 系统环境变量覆盖。
  * 敏感信息不要写进本文件,用 PM2 --env 或服务器环境变量注入。
  *
  * NEXT_PUBLIC_*(如 API 地址)在 next build 时已打入前端包;PM2 里再改不会更新浏览器里的接口域名。
@@ -31,7 +31,7 @@ module.exports = {
       max_memory_restart: "800M",
       env: {
         NODE_ENV: "production",
-        PORT: 3000,
+        PORT: 4000,
       },
     },
     {
@@ -46,7 +46,7 @@ module.exports = {
       max_memory_restart: "1G",
       env: {
         NODE_ENV: "production",
-        PORT: 3000,
+        PORT: 4000,
       },
     },
   ],

+ 4 - 2
server.js

@@ -3,11 +3,13 @@ const { createServer } = require('http');
 const { parse } = require('url');
 const next = require('next');
 
-const port = Number(process.env.PORT || 3000);
+const port = Number(process.env.PORT || 4000);
 
 /**
  * 自定义 server 若写 `next({ dev: false })` 不传 port,Next 内部仍默认 3000(见 next/dist/server/next.js),
- * 与 `listen(...)` 不一致时,307 Location 会变成错误端口。此处默认 3000,与 Next 一致;生产若反代到其它端口请设 `PORT`。
+ * 与 `listen(4000)` 不一致时,307 Location 会变成 `http://jinclab.com:3000/zh` 这类错误地址。
+ *
+ * 默认 4000 与常见 Nginx `proxy_pass http://127.0.0.1:4000` 一致;勿随意改默认,否则反代未同步会 502。
  *
  * 反代终止 TLS 后须传 `X-Forwarded-Proto: https`;若漏传,协议会判成 http。
  * 若 Host 误带内网端口,与 NEXT_PUBLIC_SITE_URL 对齐时去掉端口。