Skip to content

部署拓扑

当前生产拓扑是单 ECS 入口、单 active backend upstream、RDS 内网数据库和外部 AI 服务组合。公网流量先进入 Nginx,再按路径分发到静态资源或 fitdoc-core

拓扑图

外部访问App / Browser
ECS 入口安全组 / UFW
统一反向代理Nginx :80/:443
官网与文档站/ 与 /doc-center/
后端 upstreamfitdoc-core :8001
静态资源/uploads /static/videos
持久化与 AIRDS / LLM / Embedding
代码托管Gitea :3000

这张图表达当前生产流量的主拓扑。Gitea 与业务 App 不在同一条请求链路中,端口和监听范围在下方服务表中核对。

服务与端口

端口服务监听范围当前职责
22SSH公网运维登录。
80Nginx HTTP公网官网、静态资源、API 转发;域名请求可进入 HTTPS 路径。
443Nginx HTTPS公网域名 HTTPS 访问。
3000Gitea公网私有代码托管。
8001fitdoc-core127.0.0.1当前唯一生产 FastAPI upstream。
5432PostgreSQLRDS 内网FitDoc 业务库与 Gitea 库。

生产 ECS 当前没有活动的 80008002 后端监听。历史 fitdoc-rag.service 和旧 fitdoc.service 只保留在备份与审计语境中。

Nginx 路由边界

路径当前处理方式文件或 upstream
/静态官网入口,找不到具体资源时回落到 home.html/opt/fitdoc/frontend
/uploads/用户上传资源静态映射。/opt/fitdoc/backend/uploads/
/static/videos/Demo 或运动视频资源静态映射,带缓存与跨域响应头。/var/www/fitdoc/static/videos/
/api后端 API。http://127.0.0.1:8001
/health后端健康检查。http://127.0.0.1:8001
/docsFastAPI 文档面代理。http://127.0.0.1:8001
/doc-center/VitePress 文档中心静态站。/opt/fitdoc/frontend/doc-center/
/openapi.jsonOpenAPI schema。http://127.0.0.1:8001
/redocFastAPI ReDoc。http://127.0.0.1:8001

docs_site 的 VitePress 构建配置使用 base: '/doc-center/'。该路径不命中当前生产 Nginx 的 /docs 后端代理规则,可作为官网静态资源直接发布;/docs 继续保留给 FastAPI 文档面。

Systemd 后端服务

项目当前值
Unitfitdoc-core.service
运行用户haien
工作目录/opt/fitdoc/backend
环境文件/opt/fitdoc/backend/.env
启动命令uvicorn app.main:app --host 127.0.0.1 --port 8001 --workers 3
日志入口journalctl -u fitdoc-core
自动启动enabled

外部依赖

依赖用途运行边界
RDS PostgreSQL用户、聊天、运动、处方、评估、RAG 知识表。通过 DATABASE_URL 注入,文档不登记连接串。
DashScopeembedding 与 rerank。通过后端环境变量注入。
Moonshot/Kimi 兼容接口当前生产 LLM provider。通过 LLM_PROVIDERLLM_MODEL 与密钥变量控制。
Spark保留的可用 LLM provider。WebSocket client 与模型配置仍在代码中。
阿里云短信验证码发送。由短信相关环境变量控制。

来源锚点

  • docs/新服务器运维手册.md
  • 生产 ECS 只读命令:systemctl show fitdoc-coress -tlnpgrep /etc/nginx/sites-enabled/fitdoc
  • apps/backend_service/app/bootstrap.py
  • docs_site/.vitepress/config.ts