我正在使用 nginx 以及上游 uwsgi 应用程序。uwsgi 应用程序使用 AWS Cloudmap 作为服务发现。
我遇到的问题是 cloudmap 对 uwsgi 主机使用 DNS 解析。uwsgi 似乎解析并缓存了进入 uwsgi_pass 的任何内容。
例如在 uwsgi conf 我有这条线uwsgi_pass uwsgi://web.sandbox:8000;
这意味着 nginx 服务器可以正常工作,直到 DNS 中的一个框被删除或换出。然后我收到一条错误消息,说 nginx 无法连接,因为它试图转到不存在的旧框。
No route to host) while connecting to upstream, client: 12.151.32.34, server: sandbox.mydomain.com, request: "GET /member/api/user/ HTTP/1.1", upstream: "uwsgi://172.30.1.89:8000"
我尝试使用resolver_timeout 0s;
,但这似乎不影响 uwsgi_pass。
DNS TTL 设置为 10 秒,因此 nginx 不尊重这一点。
如何让 uwsgi_pass 尊重 TTL 或每次都解析域?