216 lines
8.1 KiB
Markdown
216 lines
8.1 KiB
Markdown
# 网络拓扑文档
|
||
|
||
> 现网快照(2026-03-19):
|
||
> - `sc.jiansun.vip -> 180.97.221.140 -> nginx -> 127.0.0.1:2321(主) / 127.0.0.1:2320(备)`
|
||
> - `sc` 专用穿透已独立:`192.168.58.20 frpc-sc-entry(0.65.0) -> 180.97.221.140:7002 frps-sc-entry(0.65.0) -> 127.0.0.1:2321/2322`
|
||
> - `3d.yydd.ai` 目前仍直接走南京机旧链路 `127.0.0.1:2320`,所以旧 `2320` 不能立刻下线
|
||
> - `s3.jiansun.vip -> 180.97.215.57 -> nginx cache(/data/nginx-cache/s3, 180g) -> 127.0.0.1:29000 -> FRP -> 192.168.58.20:9000`
|
||
> - `s3.jiansun.vip` 当前已经收口为“预览图优先缓存”:
|
||
> - `AI 生图平台`:`/gongxiangpan/uploads/` 下的图片对象进入长缓存
|
||
> - `素材库`:`preview-*`、`display-*`、`model-*`、`video-cover-*`、`audio-cover-*`、`pdf-preview-*`、`product-package/*-preview` 这类预览图片对象进入长缓存
|
||
> - `video-preview-*.mp4`、`video-clip-*.mp4`、压缩包、源文件下载等大对象继续 `BYPASS`
|
||
> - `s3.yydd.ai -> 180.97.221.140`,当前只保留为备用 / 回切域名,不再作为默认资源入口维护
|
||
> - 两端 `WireGuard` 当前都是停用状态,仅保留安装与配置,现网主链路已经回到 `FRP`
|
||
>
|
||
> 最后更新:2026-03-19
|
||
> 本文档优先记录“当前现网已验证的对外行为”和“项目内实际配置”。南京入口机的内层转发细节,如需继续下钻,请以服务器现场配置为准。
|
||
|
||
## 当前结论
|
||
|
||
- 主站主域名:`sc.jiansun.vip -> 180.97.221.140`
|
||
- 当前主站入口已经切到南京服务器
|
||
- 旧主站域名:`3d.yydd.ai -> 103.146.230.120`
|
||
- 现网行为是 `301` 跳转到 `https://sc.jiansun.vip/`
|
||
- 资源主域名:`s3.jiansun.vip -> 180.97.215.57`
|
||
- 当前对外资源默认统一使用这个域名
|
||
- 当前已启用第一层 nginx 磁盘缓存
|
||
- 资源备用域名:`s3.yydd.ai -> 180.97.221.140`
|
||
- 当前只作为备用 / 回切域名保留,不再作为默认资源入口
|
||
- 项目运行配置已经切到新主域名:
|
||
- `APP_PUBLIC_URL=https://sc.jiansun.vip`
|
||
- `NEXTAUTH_URL=https://sc.jiansun.vip`
|
||
- 当前第一层桶缓存实施不依赖 AI 生图平台业务代码改造
|
||
- 主要改动发生在 `180.97.215.57` 的入口层
|
||
|
||
## 当前对外链路
|
||
|
||
### 1. 主站访问
|
||
|
||
```text
|
||
公网用户
|
||
-> DNS
|
||
-> sc.jiansun.vip
|
||
-> 180.97.221.140(南京入口机)
|
||
-> 当前站点入口
|
||
-> 登录页 / 首页 / API
|
||
```
|
||
|
||
说明:
|
||
|
||
- 备案完成后,主站对外入口已经从旧方案切到南京服务器
|
||
- 仓库内没有保存南京入口机完整 nginx / FRP 配置,因此这里只记录已验证的入口行为,不强行推断内层链路
|
||
|
||
### 2. 旧主站域名兼容
|
||
|
||
```text
|
||
公网用户
|
||
-> 3d.yydd.ai
|
||
-> 103.146.230.120
|
||
-> nginx 301
|
||
-> https://sc.jiansun.vip/
|
||
```
|
||
|
||
说明:
|
||
|
||
- `3d.yydd.ai` 现在主要承担旧域名兼容和跳转入口,不再作为默认主站域名使用
|
||
|
||
### 3. 资源访问
|
||
|
||
```text
|
||
公网用户
|
||
-> s3.jiansun.vip
|
||
-> 180.97.215.57
|
||
-> nginx cache(仅预览图长缓存,大对象回源)
|
||
-> 127.0.0.1:29000
|
||
-> FRP
|
||
-> 192.168.58.20:9000
|
||
```
|
||
|
||
说明:
|
||
|
||
- 当前默认资源入口已经切到 `s3.jiansun.vip`
|
||
- 第一层缓存命中后,省掉的是 `180.97.215.57 <-> FRP <-> 192.168.58.20:9000` 这一整段回源开销
|
||
- 当前入口层缓存重点服务“打开网页加载图片”这一环节,不接管源文件下载链路
|
||
- `s3.yydd.ai` 仍可保留,但不再作为默认新流量入口
|
||
|
||
## 已验证证据
|
||
|
||
### 1. 公网 DNS(2026-03-19)
|
||
|
||
- `sc.jiansun.vip -> 180.97.221.140`
|
||
- `3d.yydd.ai -> 103.146.230.120`
|
||
- `s3.jiansun.vip -> 180.97.215.57`
|
||
- `s3.yydd.ai -> 180.97.221.140`
|
||
|
||
以上结论已用公网 DoH 实测确认:
|
||
|
||
- `https://dns.google/resolve?name=sc.jiansun.vip&type=A`
|
||
- `https://dns.google/resolve?name=3d.yydd.ai&type=A`
|
||
- `https://dns.google/resolve?name=s3.jiansun.vip&type=A`
|
||
- `https://dns.google/resolve?name=s3.yydd.ai&type=A`
|
||
|
||
### 2. HTTP 行为(2026-03-19)
|
||
|
||
- `curl -I https://sc.jiansun.vip`
|
||
- 返回 `307` 到 `/login`,继续访问可得到 `200 OK`
|
||
- 响应头包含 `X-Powered-By: Next.js`
|
||
- `curl -I https://3d.yydd.ai`
|
||
- 返回 `301 Moved Permanently`
|
||
- `Location: https://sc.jiansun.vip/`
|
||
- `curl -I https://s3.jiansun.vip`
|
||
- 当前返回对象存储风格的 `400 Bad Request`
|
||
- 命中上传对象路径时可返回 `X-Cache-Status: HIT`
|
||
- `curl -I https://s3.yydd.ai`
|
||
- 当前 HTTPS 行为不稳定,实测会出现 `connection reset`
|
||
- 不应再作为默认资源入口口径
|
||
|
||
## 项目内对应配置
|
||
|
||
### 1. 主域名配置
|
||
|
||
- `docker-compose.yml`
|
||
- `APP_PUBLIC_URL=https://sc.jiansun.vip`
|
||
- `NEXT_PUBLIC_DINGTALK_CALLBACK_ORIGIN=https://sc.jiansun.vip`
|
||
- `NEXTAUTH_URL=https://sc.jiansun.vip`
|
||
- `lib/public-app-url.ts`
|
||
- 默认对外主域名是 `https://sc.jiansun.vip`
|
||
- 旧域名 `https://3d.yydd.ai` 保留在兼容列表中
|
||
|
||
### 2. 对外下载链接生成
|
||
|
||
- `app/api/external/product-assets/route.ts`
|
||
- `app/api/external/standard-model-white-background/route.ts`
|
||
|
||
这两个外部接口都会通过 `getPublicAppOrigin()` 生成对外下载链接,因此默认会落到 `sc.jiansun.vip`。
|
||
|
||
### 3. 资源域名配置
|
||
|
||
- `docker-compose.yml`
|
||
- `S3_PUBLIC_DOMAIN=https://s3.yydd.ai/gongxiangpan`
|
||
- `lib/url-rewrite.ts`
|
||
- 仍把 `s3.yydd.ai` 视为当前公网资源域名
|
||
|
||
说明:
|
||
|
||
- 以上是当前仓库里的历史代码口径,不代表 AI 生图平台本期第一层缓存实施口径
|
||
- 本期实际实施口径已经收敛为:`s3.jiansun.vip` 主用,`s3.yydd.ai` 备用
|
||
|
||
### 4. 历史南京直连口痕迹
|
||
|
||
- `middleware.ts` 里仍保留 `http://180.97.221.140:2320`
|
||
|
||
这说明:
|
||
|
||
- 项目内还保留着南京旧 TCP 直连口的兼容痕迹
|
||
- 但当前对外主站口径应以 `https://sc.jiansun.vip` 为准
|
||
|
||
## 口径变更说明
|
||
|
||
- `2026-03-09` 那版文档里把 `103.146.230.120` 写成“当前公网主入口”,这个口径现在已经失效
|
||
- 当前正确口径应当是:
|
||
- `sc.jiansun.vip`:主站主域名,当前解析到南京 `180.97.221.140`
|
||
- `3d.yydd.ai`:旧主站域名,当前保留跳转
|
||
- `s3.jiansun.vip`:当前资源主域名,解析到 `180.97.215.57`
|
||
- `s3.yydd.ai`:当前资源备用域名,解析到 `180.97.221.140`
|
||
- 也就是说,当前已经不是“资源域名暂未切走”,而是“资源默认入口已切到 `s3.jiansun.vip`,`s3.yydd.ai` 只保留备用”
|
||
|
||
## 当前风险与待确认项
|
||
|
||
- 主站入口和资源入口分属不同公网 IP,网络问题不能混看
|
||
- 仓库内未保存南京入口机完整的现场配置
|
||
- 如果后续要继续追 `sc.jiansun.vip` 的内层代理路径,需要直接登录 `180.97.221.140` 核对
|
||
- `s3.yydd.ai` 历史引用仍存在
|
||
- 这不会阻塞第一层桶缓存实施
|
||
- 但后续仍需要单独治理历史 URL 残留
|
||
- 当前第一层缓存已经扩展为“预览图优先缓存”
|
||
- 已纳入:`/gongxiangpan/uploads/` 图片、素材库预览图、`product-package/*-preview`
|
||
- 仍未纳入:`video-preview-*.mp4`、`video-clip-*.mp4`、压缩包、源文件下载
|
||
- 如果后续还要优化 `image-proxy` 或 `proxy-media` 自身处理耗时,需要单独做二期
|
||
|
||
## 推荐验证命令
|
||
|
||
### 公网 DNS 验证
|
||
|
||
```bash
|
||
curl -sS "https://dns.google/resolve?name=sc.jiansun.vip&type=A"
|
||
curl -sS "https://dns.google/resolve?name=3d.yydd.ai&type=A"
|
||
curl -sS "https://dns.google/resolve?name=s3.jiansun.vip&type=A"
|
||
curl -sS "https://dns.google/resolve?name=s3.yydd.ai&type=A"
|
||
```
|
||
|
||
### HTTP 行为验证
|
||
|
||
```bash
|
||
curl -I https://sc.jiansun.vip
|
||
curl -I https://3d.yydd.ai
|
||
curl -I https://s3.jiansun.vip
|
||
curl -I https://s3.yydd.ai
|
||
```
|
||
|
||
### 跳转结果验证
|
||
|
||
```bash
|
||
curl -I -L https://3d.yydd.ai
|
||
curl -I -L https://sc.jiansun.vip
|
||
```
|
||
|
||
## 当前建议
|
||
|
||
- 对外沟通时,主站统一写 `https://sc.jiansun.vip`
|
||
- 旧域名 `https://3d.yydd.ai` 只作为兼容跳转说明,不再作为默认示例地址
|
||
- 资源直链默认统一写 `https://s3.jiansun.vip`
|
||
- `https://s3.yydd.ai` 只作为备用 / 回切说明,不再作为默认示例地址
|
||
- 当前建议继续维持:
|
||
- `180.97.215.57`:只做 `s3.jiansun.vip` 的预览图入口缓存
|
||
- `221.140` 剩余 `90G`:暂不重复缓存同一层原图,后续如要继续优化,再考虑给 `image-proxy / proxy-media` 结果层使用
|