![AWS ELB SSL とヘルスチェックの問題](https://rvso.com/image/660577/AWS%20ELB%20SSL%20%E3%81%A8%E3%83%98%E3%83%AB%E3%82%B9%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%AE%E5%95%8F%E9%A1%8C.png)
この問題を解決しようとすると、非常にイライラします。
ロードバランサーで 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$