ロードバランサ― / リバースプロキシの背後で実行した場合、CircleCI で接続失敗のエラーが発生することがあります。 これは、ロードバランサ―で処理される HTTPS url を、CircleCI が受信できないためです。 この構成の一般的なパターンは次のとおりです。
(User) --HTTPS--> (Load Balancer ) --HTTP--> (CircleCI)
次のような GitHub 認証エラーが表示される場合があります。
error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fenterprise%2F2.11%2Fv3%2Foauth%2F%23redirect-uri-mismatch
システム変数 CIRCLE_URL を使用して、HTTPS url を定義できます。
- CircleCI で公開されているホスト名を見つけます。これは、:8800/settings で定義されているものと一致している必要があります
- Services node
sudo vi /etc/circle-installation-customizations
のカスタマイズファイルを編集します - HTTPS プレフィックスを含むホストへのフルパスを追加します (例:
export CIRCLE_URL=\"https://circle.example.com\"
) - Replicated コンソールからサービスを再起動します。
フロントエンドが自動的に更新されないエラーが発生する場合もあります。
pusher-94f425ff3b262f615972fa7cdfed368b.min.js:72 WebSocket connection to 'wss://circleci.org.net/app/circle?protocol=7&client=js&version=2.2.4&flash=false' failed: Error during WebSocket handshake: Unexpected response code: 404
この問題を解決するには、ELB とサービスボックスとの間に SSL 証明書を追加し、ポート 443 とポート 443 を接続します。 通常、ELB はサービスクライアントのポート 443 ではなく、ポート 80 への接続を試みます。
コメント
記事コメントは受け付けていません。