Spinnaker Gate перенаправляет на неверный URL-адрес аутентификации

Итак, у меня есть спинакер, работающий за балансировщиком нагрузки https, и мои внешние порты используют стандартный 443, который сопоставляет порт с экземпляром спинакера, все еще на порту 9000. У меня почти все работает, за исключением перенаправления от ворот, все еще добавляющего: 9000 порт на мой URL.

запросы, отправленные на https://my.url.com/gate/auth/redirect?to=https://my.url.com/#/infrastructure, отправляют обратно ответ о перенаправлении с заголовком местоположения в 301 location:https://my.url.com:9000/gate/login, который терпит неудачу, потому что балансировщик нагрузки прослушивает только 443. Если я вручную удалю порт и перейду прямо к https://my.url.com/gate/login, поток oauth работает, как ожидалось, и после аутентификации все Функциональность колоды и последующие запросы к воротам работают, как и ожидалось.

В моем файле /etc/default/spinnaker у меня есть

SPINNAKER_DECK_BASEURL=https://my.url.com
SPINNAKER_GATE_BASEURL=https://my.url.com/gate

в /opt/spinnaker/config/gate-googleOAuth.yml у меня есть

spring:
 oauth2:
   client:
     preEstablishedRedirectUri: ${SPINNAKER_GATE_BASEURL}/login
     useCurrentUri: false

и я провел /opt/spinnaker/bin/reconfigure_spinnaker.sh плюс перезапуски, чтобы убедиться, что палуба и ворота обновлены. У кого-нибудь есть идеи, что мне может не хватать?


person Community    schedule 05.12.2016    source источник


Ответы (1)


Я понял свою проблему. С помощью этой проблемы, указывающей мне правильное направление (https://github.com/spinnaker/spinnaker/issues/1112) и немного покопавшись, я обнаружил, что проблема была с apache2 и обратным прокси-сервером обратно к воротам.

ProxyPassReverse

This directive lets Apache httpd adjust the URL in the Location, Content-Location 
and URI headers on HTTP redirect responses. This is essential when Apache httpd
is used as a reverse proxy (or gateway) to avoid bypassing the reverse proxy because
of HTTP redirects on the backend servers which stay behind the reverse proxy.

из документации apache2 https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse

person Community    schedule 06.12.2016