Разрешение хоста 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, а также ошибку «host not resolve»:

    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.

Приветствуются любые предложения!

Связанный контент