yum install httpdだけだとAWS ALBでHealth check failed with these codes: [403]
表題だけで初心者がやらかすアレと言われそうなアレですが、やらかしたのでメモ。
- EC2インスタンス起動時にユーザーデータで
yum install httpd -y
- 起動したインスタンスのIPアドレスにhttp接続してApacheのテストページが表示されることを確認
- Application Load Balanverを作成し、ターゲットグループを作り、このEC2インスタンスを追加
- 少し待ってターゲットのステータスを見ると
unhealthy
原因は単純で、Status Detailに Health check failed with these codes: [403]
とある通り、Apacheが403 Forbiddenエラーを返してるから。
Apacheのテストページが表示されている状態は、そもそもこの403: Forbeddenエラー状態で、実際に /var/log/httpd/access_log
には「ELBのヘルスチェックが GET /
してきたので403返しておきました」というようなログが残っている。
"GET / HTTP/1.1" 403 3630 "-" "ELB-HealthChecker/2.0"
また /var/log/httpd/error_log
には次のようなエラーが記録されている。
[autoindex:error] [略] [略] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive
対処はヘルスチェックを成功させたいだけなら /var/www/html/index.html
を作るのが無難で安全だと思われる。ユーザーデータに例えば以下のような1行を加える。
echo "<html><head><title>Test Page</title></head><body>Wellcome to `uname -n`.</body></html>" > /var/www/html/index.html
Author And Source
この問題について(yum install httpdだけだとAWS ALBでHealth check failed with these codes: [403]), 我々は、より多くの情報をここで見つけました https://qiita.com/tsukamoto/items/04f04eaff131275a929d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .