Я настраиваю Nginx, используя обнаружение службы Docker. Мое имя службы webAdmin
.
Соответствующий раздел текущей конфигурации Nginx гласит:
resolver 127.0.0.11 valid=10s; # Docker DNS server
if (!-f $request_filename) {
set $upstream_admin_server webAdmin:8000;
proxy_pass http://$upstream_admin_server;
break;
}
При посещении соответствующего сервера Nginx возвращает 404. Журналы показывают, что Nginx пытается разрешить версию имени моей службы в нижнем регистре.
2019/08/26 21:53:46 [error] 3756#3756: *1569 webadmin could not be resolved (3: Host not found), client: 10.0.0.29, server: admin.mysite.com, request: "GET /favicon.ico HTTP/1.1", host: "admin.mysite.com"
Когда я избегаю использования переменной, конфигурация читает
resolver 127.0.0.11 valid=10s; # Docker DNS server
if (!-f $request_filename) {
proxy_pass http://webAdmin:8000;
break;
}
Затем Nginx может разрешить имя службы и правильно направить мой запрос.
Я пытался использовать кавычки, одинарные и двойные, но, похоже, ни один из них не имеет никакого эффекта. Документы Nginx для set
, похоже, не дают никаких подсказок.
Почему моя переменная преобразуется в нижний регистр?
nginx:1.15.9
. Который использует Nginx версии 1.15.12. - person derek   schedule 27.08.2019