完整企业级后端架构全景

用户浏览器


┌─────────────────────────────────────────────────────────────────┐
│ 1. DNS 域名 → IP 地址 │
│ 2. CDN 静态资源缓存、边缘加速 │
│ 3. WAF Web 应用防火墙,防攻击 │
│ 4. Nginx 边缘负载均衡 & SSL 终结 │
│ 5. Kong API 网关:鉴权、限流、路由、日志 │
│ 6. K8s 容器编排平台:部署、扩缩容、服务发现 │
│ 7. FastAPI 你的应用代码 │
│ 8. gRPC 微服务之间通信 │
│ 9. Redis 缓存 & 分布式锁 & 限流计数器 │
│ 10. PostgreSQL 主数据库(主从架构) │
│ 11. Kafka 异步消息队列 │
│ 12. Celery 异步任务(发邮件、生成报告、AI 推理) │
│ 13. Elasticsearch 全文搜索 & 日志存储 │
│ 14. Prometheus 指标采集 & 告警 │
│ 15. Jaeger 链路追踪 │
│ 16. ELK / Loki 日志聚合 │
│ 17. Vault 密钥管理 │
│ 18. GitLab CI 持续集成/持续部署 │
│ 19. Docker 容器镜像 │
│ 20. Helm K8s 包管理器 │
└─────────────────────────────────────────────────────────────────┘

  1. DNS — 互联网的电话簿
    一句话:把 api.example.com 翻译成 IP 地址 13.225.142.89。
    为什么需要:人记不住 IP,浏览器记不住域名。
    它做什么:
    浏览器: "api.example.com 在哪?"

    ├── 问本地 DNS 缓存 → 没有
    ├── 问路由器 → 没有
    ├── 问运营商 DNS (如 114.114.114.114) → 没有
    ├── 问根 DNS → "去找 .com 的 DNS"
    ├── 问 .com DNS → "去找 example.com 的 DNS"
    └── 问 example.com 的 DNS → "api.example.com 是 13.225.142.89,别名指向 CDN"
    企业用法:
    智能解析:北京用户解析到北京机房,纽约用户解析到纽约机房
    故障切换:主 IP 挂了自动切到备用 IP
    权重负载:60% 流量去 A 机房,40% 去 B 机房
    常用产品:Route53(AWS)、Cloud DNS(GCP)、DNSPod(腾讯)
    你这个项目现在:没有域名,用 localhost:10011,不需要 DNS。
  2. CDN — 内容分发网络
    一句话:把静态文件(图片、JS、CSS、视频)缓存到离用户最近的节点,加速访问。
    为什么需要:用户在美国,服务器在中国,延迟 200ms。CDN 在洛杉矶有节点,延迟 10ms。
    它做什么:
    没有 CDN:
    用户(纽约) ────────── 200ms ──────────▶ 服务器(上海)

    └── 返回 logo.png (500KB) ── 200ms → 用户
    总耗时 400ms

有 CDN:
用户(纽约) ── 10ms ──▶ CDN节点(纽约)

├── logo.png 在缓存?→ 直接返回 (10ms)
│ 总耗时 20ms

└── 没缓存?→ 回源到上海取一次,然后缓存
之后所有人都是 10ms
企业用法:
静态资源:图片、JS、CSS、字体文件全部走 CDN
API 加速:动态请求也可以走 CDN(利用 CDN 的优质网络线路回源)
边缘计算:在 CDN 节点跑轻量逻辑(Cloudflare Workers、AWS Lambda@Edge)
常用产品:CloudFront(AWS)、Cloudflare、阿里云 CDN
你这个项目现在:不需要,前端和 API 都在本地。
3. WAF — Web 应用防火墙
一句话:在请求到达你的服务器之前,拦截恶意请求。
为什么需要:互联网每分钟都有自动化扫描在找漏洞。你的服务器暴露公网 10 分钟就会被扫。WAF 挡在前面。
它做什么(规则示例):
攻击类型 恶意请求 WAF 检测
SQL 注入 ?id=1' OR '1'='1 匹配到 ' OR '1'='1 模式 → 403
XSS 匹配到

Connected Pages