diff --git a/CLAUDE.md b/CLAUDE.md index 91c9674..03ec18a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,14 +45,14 @@ npm run lint # ESLint **物理服务器:** - 生产服务器:`192.168.58.20` - 构建服务器:`192.168.40.206`(部署脚本内的固定值;旧文档中的 `192.168.42.134` 已不是部署入口) -- 香港公网服务器:`103.118.245.6`(FRP 入口 + Nginx 反向代理) +- 公网入口服务器:`218.93.9.38`(FRP 入口 + Nginx 反向代理;2026-10-06 核实,原香港服务器 `103.118.245.6` 已下线) - 上游报表库:`218.93.9.21`(SQL Server 2019,人事与组织架构数据源) **公网访问架构:** - 域名:`sc.jiansun.vip`(素材平台)、`s3.jiansun.vip`(MinIO) -- 公网入口:香港服务器 103.118.245.6 -- FRP 服务:`frps-jiansun-entry`(端口 7002) -- 生产服务器通过 FRPC 连接到香港服务器 +- 公网入口:218.93.9.38(生产机 frpc 配置自 2026-08-02 起指向此地址) +- FRP 服务:`frps-sucai`(端口 7003,只放行远端端口 2321-2326)。同机 7002 是 furniture 项目的 frps,别混用 +- 生产服务器通过 FRPC 连接到入口服务器:配置 `/etc/frp/frpc-*-entry.toml`,日志 `/root/frp/frpc-*-entry.log` - Nginx 反向代理:sc.jiansun.vip → 127.0.0.1:2321,s3.jiansun.vip → 127.0.0.1:2323 **Docker 网络:** @@ -91,6 +91,19 @@ scgi_temp_path /tmp/scgi; ``` 并 `mkdir -p` 这些目录、`chown -R nobody:nogroup`、`chmod 700`,再 reload。诊断时先看 `local-proxy/.../error.log` 有没有 `open() "..." failed (13: Permission denied)`。 +### ⚠️ 公网 502 排查顺序(2026-10-06 事故) + +**现象**:`sc.jiansun.vip` 整站返回 nginx 502。 + +**本次是两层原因叠加**: +1. 应用 / Redis / Postgres 三个容器从 9-30 起处于停止状态(退出码 0,不是崩溃,停止原因未查明),10-03 服务器重启后也没有被拉起 +2. 10-03 下午起公司防火墙拦截了生产机出网,FRP 隧道连不上入口机。第 1 层修好后公网仍是 502,防火墙放开后才恢复 + +**排查顺序**(登录生产机执行): +1. `docker ps -a` 看应用容器(以 `current-container` 文件为准)、`gongxiangpan-redis`、`gongxiangpan-postgres-1` 是否在跑。停了就按 Postgres → Redis → 应用的顺序 `docker start` +2. `curl http://127.0.0.1:4320/api/health`:返回 200 说明应用和本地反代都正常,问题在公网链路 +3. 看 `/root/frp/frpc-sc-entry.log`:如果满屏 `dial tcp 218.93.9.38:7003: i/o timeout`,再从生产机访问任意外网地址,全部超时就是出网被拦。这时找网管查公司防火墙,不用动应用 + ### 上游报表库(人事与组织架构数据源) @@ -287,14 +300,15 @@ docker restart youyidian-3d-material | 服务器 | IP地址 | SSH别名 | 密钥文件 | 用途 | |--------|--------|---------|---------|------| -| 生产服务器 | 192.168.58.20 | `prod` | `youyidian_prod_ed25519` | 应用容器、数据库、Redis | +| 生产服务器 | 192.168.58.20 | 直接用 IP(`prod` 别名已删除) | `youyidian_prod_ed25519` | 应用容器、数据库、Redis | | 构建服务器 | 192.168.42.134 | `build` | `id_rsa_build_192.168.42.134` | Docker镜像构建 | -| 香港公网服务器 | 103.118.245.6 | - | - | FRP 入口、Nginx 反向代理 | +| 公网入口服务器 | 218.93.9.38 | - | root 密码登录(密码不入库) | FRP 入口、Nginx 反向代理 | | License服务器 | 122.51.149.232 | `license-server` | `id_ed25519_license_122.51.149.232` | License服务 | | 腾讯云服务器 | 45.249.208.118 | `tencent` | `tencent_server.pem` | 腾讯云服务器 | **已废弃服务器:** - 旧镇江服务器 180.97.221.140(已封禁,不再使用) +- 原香港服务器 103.118.245.6(已下线;`~/.ssh/config` 里的 `frp` 别名仍指向它,勿用) **未识别的密钥**: - `id_rsa` / `id_rsa.pub` - 默认密钥(保留不动) @@ -302,16 +316,13 @@ docker restart youyidian-3d-material **连接方式**: ```bash -# 使用别名(推荐) -ssh prod # 生产服务器 -ssh build # 构建服务器 -ssh frp # FRP服务器 -ssh tencent # 腾讯云服务器 - -# 使用IP -ssh 192.168.58.20 +ssh 192.168.58.20 # 生产服务器(~/.ssh/config 已配好密钥) +ssh build # 构建服务器 +ssh tencent # 腾讯云服务器 ``` +**公网入口服务器 218.93.9.38**:root 密码登录,密码向维护人员索取。Windows 下用 `plink -batch -hostkey <指纹> -pw <密码> root@218.93.9.38`;2026-10-06 首次连接记录的指纹是 `SHA256:UwFngDHnyUFNAszlwbtVzBc4NdZMwCCfOz+8yoJvgKs`(未经第二渠道核对)。 + **配置文件**:`C:\Users\54972\.ssh\config`(已配置好 IdentityFile) #### 查看密码的方式 @@ -352,6 +363,7 @@ ssh root@192.168.58.20 "cat /root/youyidian-3d/.env 2>/dev/null || echo 'No .env 当密码变更时,在此处记录: - **2026-01-27**:初始记录,建立密码管理机制 - **2026-05-05**:公网接入迁移到香港服务器 103.118.245.6 +- **2026-10-06**:核实公网入口已换为 218.93.9.38,原香港服务器 103.118.245.6 已下线 ---