NGINX proxy_pass主機解析與IP6不一致

NGINX proxy_pass主機解析與IP6不一致

我在簡單的反向代理場景中使用 NGINX,通常使用一個變數來定義主機名,以便在主機不可用時它不會啟動失敗。

這是我發現的內容:使用此配置,流量被代理,但頁面未完全呈現 - 看起來好像某些 .js 庫未加載。

    resolver 192.168.86.1 valid=30s ipv6=off;
    location /cam/ {
               set $motion01 motion01;
               proxy_set_header Host $host;
               proxy_pass http://$motion01.lan/;

如果我像這樣刪除 ipv6=off ,則會收到 502 bad gateway,並且錯誤顯示「主機未解析」:

    resolver 192.168.86.1 valid=30s;
    location /cam/ {
               set $motion01 motion01;
               proxy_set_header Host $host;
               proxy_pass http://$motion01.lan/;

但是,如果我更改為使用文字主機名稱而不是變量,則它可以正常工作:

               set $motion01 motion01;
               proxy_set_header Host $host;
               #proxy_pass http://$motion01.lan/;
               proxy_pass http://motion01.lan/;

我不想使用文字主機名,因為如果主機在啟動時不可用,nginx 將不會啟動,但我無法弄清楚此配置的情況。

我嘗試過在伺服器上啟用和停用 IP6,以及包含和排除

listen [::]:443 ssl; 

指令,一切都無濟於事。這不是 nginx 早期版本的問題(我不記得我最初使用的是哪一個),但現在 1.14.2.2 出現了這個問題。

歡迎任何和所有建議!

相關內容