fix(deploy): 生产/测试改直连阿里云(nginx stream 转发只服务本地开发)

- 起因:生产 .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 转发只为本地开发,服务侧一律直连
This commit is contained in:
12451 2026-09-20 03:40:51 +08:00
parent a904f5ff11
commit 9e8826e6f8

View File

@ -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` 自动恢复 - systemd自启,`Restart=always` 自动恢复
- 本地直连 `10.8.0.252`,无需SSH隧道 - 本地直连 `10.8.0.252`,无需SSH隧道