Domain-Name-System

使用 dns 名稱進行 nginx 重定向

  • September 5, 2013

我有 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?

我在這裡找到了解決方案:

http://forum.nginx.org/read.php?2,238835,238899#msg-238899

location / {
set $backend "m1.local";
proxy_pass http://$backend;
}

Nginx 在啟動時進行這些名稱查找,然後它只保留 IP。這意味著它甚至不會在執行時將名稱保存在記憶體中以再次查找它們。

如果您更改您在 Nginx conf 中引用的 DNS 條目,您可以執行nginx -s reload以使其重新載入配置,這包括重做 DNS 查找。

引用自:https://serverfault.com/questions/536599