ELB配下のEC2にBasic認証とヘルスチェックを設定する。
ELB配下のEC2とするためヘルスチェックを設定したい。しかしBasic認証をかけておきたい。
という場合の設定。
備忘のためメモしておきます。
Basic認証配下にヘルスチェック先があると、401エラーになってしまい正常なヘルスチェックができない。
その場合は、以下のようにApacheのConfを設定し、ヘルスチェック先のみベーシック認証対象から除外します。
ベーシック認証を設定。ただしヘルスチェック先を除外する。
# いずれかの条件を満たせばアクセス可 Satisfy Any # ベーシック認証によりアクセスを許可 AuthUserfile /home/hogehoge/application/public/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user # リクエストURLがヘルスチェック先の場合は、アクセスを許可 setEnvIf Request_URI "/health_check/index.php" healthcheck Order Deny,Allow Deny from all Allow from env=healthcheck
ヘルスチェックログの出力先を分ける
ヘルスチェックログとアプリログを混在しないように、以下の設定で出力先を分けます。
DocumentRoot /home/hogehoge/application/public SetEnvIf User-Agent "ELB-HealthChecker.*" nolog SetEnvIf User-Agent "ELB-HealthChecker.*" elb ErrorLog /home/hogehoge/application/logs/error_log CustomLog /home/hogehoge/application/logs/access_log combined env=!nolog CustomLog /home/hogehoge/application/logs/health_check_access_log combined env=elb
ちなみに、ロードバランサー作成後にヘルスチェック先変更する場合は、ターゲットグループの方のタブから行うらしい。。