我有如下 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 地址。
从 nginx 计算机中 nslookup m1.local 显示正确值,然后重新启动 nginx 修复情况。
如何告诉 nginx 它不应该缓存 dns 名称的 ip?
答案1
Nginx 在启动时会进行这些名称查找,然后它只保留 IP。这意味着它甚至不会在运行时将名称保存在内存中以便再次查找它们。
如果您更改了 Nginx 配置中引用的 DNS 条目,则可以执行操作nginx -s reload
以重新加载配置,这包括重新进行 DNS 查找。
答案2
我在这里找到了解决方案:
http://forum.nginx.org/read.php?2,238835,238899#msg-238899
location / {
set $backend "m1.local";
proxy_pass http://$backend;
}