ヘルスチェックをファビコンで・・・だと・・・
その場合のApacheの設定は以下の通り
<Location /var/www/workspace>
AllowOverride all
Satisfy Any
AuthType Basic
AuthName "Login"
AuthUserFile /var/hoge/.htpasswd
Require valid-user
SetEnvIf Request_URI "/favicon.ico" healthcheck
Order Deny,Allow
Deny from all
Allow from env=healthcheck
</Location>
どこだかの記事でみた時、ヘルスチェックはファビコンでやろう!
とかいてあったり、
特定のURLを除外すればいいよと 下記記事で言っていたり
Elastic Load Balancingのヘルスチェックだけ認証から外す
https://dev.classmethod.jp/cloud/elb-exclude-health-check-url/
じゃなくて ヘルスチェックならOKに でいくね?
弊社では 利用環境上の理由で、特定のページは特定のInstanceへ・・・
っていうことを行っておりまして。。。
普通のWebサイトはロードバランサで振り分けて、
特定のページは特定のインスタンスだけを見せる
その場合・・・
どうやって書けばいいの??
ってなったので 調べた結果・・・
以下で解決
<Directory /path/to/app>
Require valid-user
AuthType Basic
AuthName "Please enter your ID and password"
AuthUserFile /path/to/.htpasswd
# Satisfy AnyでOR条件にしてELB-HealthCheckerで始まるUAのみ許可する
Satisfy Any
Order Deny,Allow
SetEnvIf User-Agent "^ELB-HealthChecker.*$" noAuth
Allow from env=noAuth
Deny from all
</Directory>
詳しい説明等は引用元のサイトを閲覧頂いて・・・
(There was commentary in English)
引用元
ELBのヘルスチェック(200)を受け入れつつBasic認証をかける
http://tamago-engineer.hateblo.jp/entry/2018/01/25/224231
そもそも論
特定インスタンスの振り分けだけ ELBのリスナールールで行って監視はファビコンでいいのでは?
まったくもってそのとおり。!!
特定のページが見れた時だけ 該当インスタンスへ振り分ける
をしたかっただけなので、
通常閲覧可能ページと 特定閲覧ページをわざわざ 監視する必要なんてなくて
リスナールールと振り分け先のインスタンスの状態さえ見えてればよかっただけなんだから。。。
まぁとりあえず、Apacheの設定チェックして再起動さくっとやっちゃいなよ You!
$ apachectl configtest
Syntax OK
これ確かめて OKが出たので、Apacheをサクッと再起動(graceful)
sudo systemctl reload httpd.service
これで解決できたのでまあ満足でございます!