У меня есть сервер Nginx, прослушивающий 80
, который запускается внутри контейнера Docker.Nginx: сохранить порт во время перенаправления
Внутри конфигурации Nginx мне нужно выполнить перенаправление на статическую страницу в определенных ситуациях.
rewrite^/foobar.html redirect;
Пользователь может запустить контейнер, указав любой порт с помощью команды Докер линии (для справки, она может выставить контейнер на порт 8000
и внутренне Nginx будет по-прежнему использовать 80
).
Теперь, когда Nginx перенаправляет URL-адрес, порт заменяется на внутренним от Nginx вместо того, чтобы использовать тот, который используется Docker.
Я попытался установить кучу заголовков, но они не помогли:
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://app_server;
rewrite^/foobar.html redirect;
Он по-прежнему перенаправляет на 80
.
Как я могу указать Nginx на сохранение порта, используемого пользователем?