![nginx Docker 容器缓存 proxy_pass DNS 记录在哪里?](https://linux22.com/image/715024/nginx%20Docker%20%E5%AE%B9%E5%99%A8%E7%BC%93%E5%AD%98%20proxy_pass%20DNS%20%E8%AE%B0%E5%BD%95%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我正在 Docker Swarm 中以容器的形式运行 Nginx 作为反向代理。我知道在启动时它会缓存我的 proxy_pass 位置的所有别名。在 Docker Swarm 中运行服务时,该服务会被分配一个 VIP,并且 Swarm 会将发往该 VIP 的流量引导到后端容器之一。我的假设是 Nginx 应该为我的服务缓存 VIP,只要我只运行docker service update
命令,VIP 就不会改变(即使后端 IP 可能会改变)。
但这不是我看到的行为。每当我运行docker service update
VIP 时,它都不会改变,但是我的代理开始发送 Bad Gateway 响应。如果我--force
更新代理服务,它通常会再次开始工作。我想验证 Nginx 正在缓存哪些 IP,但我找不到有关此缓存驻留位置的文档。
仅供参考:我尝试过使用解析器,它确实有效,但这只意味着我的网站将处于宕机状态,直到 TTL 过期(我知道我可以将其设置得较低,但我不应该这样做)。