AWS ELB SSL とヘルスチェックの問題

AWS ELB SSL とヘルスチェックの問題

この問題を解決しようとすると、非常にイライラします。

ロードバランサーで SSL 証明書を使用する AWS 環境があります。また、httpd.conf には、すべてのポート 80 トラフィックを 443 にリダイレクトする書き換えルールがあります。この環境は現在のサーバーで完全に機能し、期待どおりに 443 にリダイレクトされ、ELB ヘルスチェック ping は期待どおりに機能します。

問題は、サーバー ビルド ドキュメントを紛失したため、再作成する必要があることです。新しい Amazon Linux インスタンスで新しい httpd サービスを設定しようとすると、既存の ELB でインスタンスが使用可能であると認識されません。ELB ヘルス チェックが機能していません (既存のインスタンスでは機能します)。

ヘルスチェックは次のように構成されます。

HTTPS:443/proxy/login.php

(これは変更されず、既存のインスタンスで動作します)

ELB リスナーは次のように設定されます。

ポート 80 -> ポート 80

ポート443 -> ポート80(登録済みの証明書あり)

動作中のサーバーの httpd.conf 内には、次のルールもあります。

<VirtualHost *:80>
RequestHeader set X-Forwarded-Proto "http"

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^test. [NC]
RewriteCond %{HTTP_HOST} !^signup. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

新しいサーバーにルールを追加しましたが、うまくいきませんでした。稼働中のサーバーから新しいサーバーに httpd.conf をコピーしましたが、それでもうまくいきませんでした。新しいサーバーで他に何が足りないのでしょうか? 他に注意すべき構成ファイルはありますか?

答え1

ご意見ありがとうございます。次の条件を仮想ホスト セクションに追加して、443 へのリダイレクトを除外することでこの問題を解決しました。

RewriteCond %{REQUEST_URI} !^/proxy/login\.php$

関連情報