0

したがって、httpsロードバランサーの背後でスピンネーカーを実行しており、外部ポートは標準の443を使用しており、ポート9000にあるスピンネーカーインスタンスにポートがマップされています。ゲートからのリダイレクトを除いて、ほとんどすべてが機能しています.私のURLへの9000ポート。

https://my.url.com/gate/auth/redirect?to=https://my.url.com/#/infrastructureロード バランサーが 443 のみをリッスンしているため、301 のロケーション ヘッダーを含むリダイレクト レスポンスを返送するために送信されたリクエストはlocation:https://my.url.com:9000/gate/login失敗します。ポートを手動で削除し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デッキとゲートが確実に更新されるように、再起動を実行しました。私が見逃している可能性のあるアイデアはありますか?

4

1 に答える 1

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

于 2016-12-06T17:52:31.103 に答える