Nginx 反向代理 + Docker 网关:多服务统一部署实践
当一台服务器上跑了五六个 Web 服务(API 网关、前端页面、数据平台、AI 接口代理),各自监听不同端口时,管理就变得混乱了。我的做法是用一个 Nginx 容器做统一入口,所有外部请求都走 443,通过 Host 头分发到上游服务。配置上每个服务一个 conf 文件放在 conf.d/,主 server 段用 include /etc/nginx/conf.d/location-* 通配引入。好处是新增服务只需要写一个配置文件 + 重启 nginx,不用动任何已有服务的端口。
一个坑:location 块内的 proxy_pass 如果上游容器重启了(比如 docker-compose down/up),nginx 缓存的上游 IP 就失效了,需要配 set $upstream + resolver 127.0.0.11 让 nginx 用 Docker DNS 动态解析。