当社の実稼働環境では、SSL はロード バランサーにオフロードされます。これは、サーバーの CPU 負荷を軽減するために行われました。
ほとんどの場合、これはまったく問題ありませんが、サーバーが SSL 経由でページを提供しているかどうかを認識する必要があります。
SSL オフロードを維持しながらこれを行う良い方法は何ですか?
答え1
バックエンドサーバーに送信されるスキームを含むヘッダーを追加することができます
例えば、NGINXを使用する場合、バックエンドプロキシサーバーに次のようなヘッダーを送信します。$スキーム変数、
proxy_set_header Scheme $scheme;
次に、バックエンド アプリケーションでヘッダーを取得できます。
if ( this.request.getheader('Scheme') is 'http' ) {
this.response.send('HTTP!')
} otherwise ( this.request.getheader('Scheme') is 'https' ) {
this.response.send('HTTPS!')
}
どのロードバランサーを使用していますか?ほとんどのソフトウェアで同様のことを行う方法があると思いますが、私はたまたまNGINXが一番よく知っています。