ALBヘルスチェックのBASIC認証除外
Application Load Balancerのターゲットグループで、ヘルスチェック設定を行う際に、通常はヘルスチェック用にパスを準備し、想定したレスポンスコード(200など)が返るような設定を行うかと思います
今回は事情によりヘルスチェック用のパスを準備できなかったため、ドキュメントルート直下にヘルスチェック用パスを設定したのですが、そのままですとBASIC認証がかかっているため、ヘルスチェックがhealthyになりません
そこでhttpd.cofでBASIC認証の除外対象として、ALBからのヘルスチェック用のアクセスを許可する設定を行いました
User Agentを参照し、
ELB-HealthChecker/2.0
となっているものをBASIC認証から除外しています
<VirtualHost *:80> <Location /> SetEnvIf User-Agent "ELB-HealthChecker/2.0" valid-ua <RequireAny> Require valid-user Require env valid-ua </RequireAny> </Location> </VirtualHost>
無事ヘルスチェックがHealthyになりました
参考までに他の除外設定も含めたものを記載しておきます
<VirtualHost *:80> <Location /> # Basic認証設定 AuthType Basic AuthName "Password Required" AuthUserFile /path/to/.htpasswd # IPアドレスで除外 SetEnvIf REMOTE_ADDR 192.168.0.1 valid-ip # URIで除外 SetEnvIf Request_URI "^/index.php" valid-url # Hostヘッダーで除外 SetEnvIf Host "specific.example.com" valid-host # User Agentで除外 SetEnvIf User-Agent "ELB-HealthChecker/2.0" valid-ua # 以下の条件に一致する場合はBasic認証を除外 <RequireAny> Require valid-user Require env valid-ip Require env valid-url Require env valid-host Require env valid-ua </RequireAny> </Location> </VirtualHost>