From 9e8826e6f89b466112ca3f1f65811ecfe1f76bd2 Mon Sep 17 00:00:00 2001 From: 12451 <12451@example.com> Date: Sun, 20 Sep 2026 03:40:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(deploy):=20=E7=94=9F=E4=BA=A7/=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=94=B9=E7=9B=B4=E8=BF=9E=E9=98=BF=E9=87=8C=E4=BA=91?= =?UTF-8?q?=EF=BC=88nginx=20stream=20=E8=BD=AC=E5=8F=91=E5=8F=AA=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=9C=AC=E5=9C=B0=E5=BC=80=E5=8F=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 起因:生产 .env 走 127.0.0.1:6379/3306,而这两个端口是 nginx 在监听 ⇒ 生产实际经由 "给开发用的转发层":reload nginx 会同时切断四个服务连接(实测每次 4 条 broken pipe ERROR), 且生产的库/缓存通路依赖 stream{} 配置(配错则 nginx 起不来、整平台连不上库) - 改动:/data/pms 与 /data/pms_dev 的 .env 改为直连 rm-...mysql.rds / r-...redis.rds(改前已备份) - 实测:裸 TCP 可达、python3 直接说 Redis 协议读写成功、mysql 客户端直连查询成功 (柜子 68/组织 46/版本 8.0.36)、连接目标均为阿里云 IP、health 200、端点回归通过; reload nginx 后生产连接数 5→5 不变、生产与测试 ERROR 均为 0(改造前必产生 4 条) - AGENTS.md 明确:nginx stream 转发只为本地开发,服务侧一律直连 --- AGENTS.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index cc30312..4e74e92 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -115,7 +115,17 @@ Redis: 10.8.0.252:6379 ``` **代理说明:** -- 服务器nginx stream转发MySQL(3306)和Redis(6379)到阿里云RDS +- 服务器nginx stream转发MySQL(3306)和Redis(6379)到阿里云RDS —— + ⚠️ **这个转发只为「本地开发机经 ZeroTier 访问阿里云」而存在**(监听 `10.8.0.252:3306/6379` 等)。 + **服务侧(生产 `/data/pms`、测试 `/data/pms_dev`)一律直连阿里云**: + `DATABASE_URL=...@rm-bp1bb7yiv5n8z4uvp.mysql.rds.aliyuncs.com:3306/...`、 + `REDIS_URL=...@r-bp1lsezvgzmgtwhbtg.redis.rds.aliyuncs.com:6379/...` + (2026-09-20 已改;改前生产走的是 `127.0.0.1:6379/3306` —— 那两个 **nginx 监听**的回环端口)。 + **为什么必须直连**:走 nginx 时 `systemctl reload nginx` 会切断所有经它转发的连接 → 四个服务同时 + `RPOP 错误: broken pipe`(实测每次 reload 4 条 ERROR);更要紧的是**生产的库/缓存通路会依赖一个 + 本来只给开发用的转发层**(`stream{}` 一旦配错 nginx 起不来 → 整平台连不上库)。 + 改造后实测:reload nginx 前后生产连接数不变(5→5)、生产与测试 ERROR 均为 0。 + `127.0.0.1` 的 stream 监听**保留**(无副作用,本地开发/回环排查仍可用),但**服务不再用它** - systemd自启,`Restart=always` 自动恢复 - 本地直连 `10.8.0.252`,无需SSH隧道