Обратный прокси Nginx с ошибкой 502 только с динамическим портом по карте - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь сопоставить свои бэкенд-контейнеры NodeJS Docker с портами на субдомены.Для этого я пытаюсь настроить:

map $sub $prt {
        include /var/www/ports.map;
}

server {

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        ssl_certificate         /var/...;
        ssl_certificate_key     /var/...;
        ssl_trusted_certificate /var/...;

        server_name ~^(?P<sub>.+?)-api\.cnpgc\.embrapa\.br$;

        location / {
                add_header x-sub "$sub";
                add_header x-prt "$prt";

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_cache_bypass $http_upgrade;
                proxy_ssl_session_reuse off;
                proxy_pass http://localhost:$prt;
        }

}

Однако, при попытке доступа, например, "cria-certo-api.cnpgc.embrapa.br" Я получаю ошибку "502 Bad Gateway".Если я изменю последнюю строку с

proxy_pass http://localhost:$prt;

на

proxy_pass http://localhost:9080;

Прокси работает нормально!Итак, ошибка возникает из-за наличия в URL переменной «prt».Это не имеет смысла.

Я отлаживаю свою карту со строками:

add_header x-sub "$sub";
add_header x-prt "$prt";

И это тоже работает.Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...