SuperAPI AI 工具集

reverse-proxy

部署与运维

查看项目

更新于 10-25 02:02

技能介绍

用途

该技能用于配置反向代理,将流量路由到后端服务、终止 TLS、实施限流,并作为客户端与后端服务之间的网关。

适用场景包括:把公网域名的流量路由到一个或多个后端服务;在边缘终止 TLS 并向背端转发明文 HTTP;添加限流、CORS、安全头和访问控制;通过基于路径的路由把多个服务整合到单一域名下;处理 WebSocket 升级、gRPC 代理或 HTTP/2 透传。

前置条件

资料列出:后端服务运行在已知的 host:port;TLS 证书(Let's Encrypt、ACM 或开发用自签名);已安装 nginx 1.25+ 或 Traefik 3.x;DNS 记录将域名指向代理服务器。

nginx 主要能力

  • 基础 HTTPS 代理与 80 端口 301 跳转,示例包含 TLS 协议与加密套件、会话缓存、HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy 等安全头,以及 proxy_set_header、超时与缓冲设置。
  • 基于路径的多服务路由:前端 SPA、/api/ 后端、/ws/ WebSocket(设置 Upgrade/Connection 与长读超时)、/static/ 静态资源缓存。
  • 限流:在 http 块定义 limit_req_zone 与 limit_conn_zone,按 IP 限制请求速率与并发连接,可设置突发与 429 状态。
  • Gzip 与 Brotli 压缩(Brotli 需 ngx_brotli 模块)。
  • 使用 Certbot 的 nginx 插件申请证书,并说明 systemd 定时器自动续期与 dry-run 测试。
  • IP 白名单(allow/deny)与基于 GeoIP2 模块的国家封禁示例。
  • 测试与管理命令:nginx -t、nginx -s reload、systemctl status nginx、查看生效配置文件、跟踪访问与错误日志。

Traefik 主要能力

  • 静态配置:web/websecure 入口点与 HTTP 到 HTTPS 跳转、Let's Encrypt ACME 解析器(HTTP 挑战)、Docker 与文件 provider、仪表盘、日志与访问日志。
  • 动态配置(文件 provider):按 Host 与 PathPrefix 定义路由、TLS 证书解析器、服务负载均衡与健康检查、安全头与限流中间件。
  • Docker 标签集成:docker-compose 示例中通过标签启用路由、TLS 证书解析器和限流中间件。

使用方式与注意事项

资料建议把片段视为目标 server/http/location 上下文的独立片段,保留现有配置,先运行 nginx -t,仅在通过后经授权重载并准备回滚。includeSubDomains/HSTS preload 要求所有被覆盖主机支持 HTTPS,不应盲目照搬示例启用。需配置可信的转发头来源与源站访问,不能把客户端提供的转发头当作身份。Docker socket 挂载即使为 :ro 仍属特权,应使用受限的 socket 访问并避免暴露仪表盘。

故障排查

资料列出常见症状与修复:502(后端未运行或不可达)、504(后端过慢,增大 proxy_read_timeout)、混合内容警告(未设置 X-Forwarded-Proto)、WebSocket 60 秒断开(增大读超时)、限流误伤正常用户(调整速率或突发值)、Let's Encrypt 续期失败(检查 80 端口与 acme-challenge 路径)、Traefik 全部 404(检查 Docker socket 与 exposedByDefault)、TLS 握手失败(证书链不完整)。

限制

基础设施命令可能中断服务:变更前需确认目标主机与范围并准备备份或快照。资料为仅文档导入,未捆绑上游脚本与模板。