我有 nginx 重定向,例如:
server {
listen 127.0.0.1:80;
server_name myname.local
location / {
proxy_pass http://m1.local:8080;
}
}
}
效果很好。
但是在更改 m1.local 的 IP 地址后 - nginx 开始返回“坏网关”。
看起来它有 m1.local 的缓存 IP 地址。
nslookup m1.local 从 nginx 计算机显示正确的值,并重新启动 nginx 修复情况。
如何说 nginx 不应该为 dns 名称缓存 ip?
Nginx 在启动时进行这些名称查找,然后它只保留 IP。这意味着它甚至不会在运行时将名称保存在内存中以再次查找它们。
如果您更改您在 Nginx conf 中引用的 DNS 条目,您可以执行
nginx -s reload
以使其重新加载配置,这包括重做 DNS 查找。我在这里找到了解决方案:
http://forum.nginx.org/read.php?2,238835,238899#msg-238899