NGINX / Openshift - блок локации, перенаправляющий на неправильный порт - PullRequest
0 голосов
/ 05 сентября 2018

У меня NGINX работает на порту 8443 внутри контейнера Docker в Openshift. У меня также определен маршрут Openshift, который перенаправляет трафик из порта 443 в контейнер 8443.

Это работает нормально, пока я не попытаюсь получить доступ к блоку местоположения без завершающего / в URL. Например, когда я иду на:

https://test.example.com/example

Сетевые журналы JS показывают, что NGINX пытается перенаправить меня на неправильный порт (8443):

https://test.example.com:8443/example/

Поскольку единственный открытый порт - это 443, это не удается. FWIW, он отлично работает при добавлении косой черты (https://test.example.com/example/)

Есть ли способ заставить NGINX не использовать свой внутренний порт во время перенаправлений, а вместо этого придерживаться порта, используемого клиентом? Вот пример моего блока местоположения:

location /example {
  proxy_pass https://example.apps.svc.cluster.local:8443;
}

1 Ответ

0 голосов
/ 05 сентября 2018

Я нашел ответ в HttpCoreModule документах. Пришлось включить port_in_redirect off; в блок локации. Например:

location /example {
  port_in_redirect off;
  proxy_pass https://example.apps.svc.cluster.local:8443;
}
...