Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

EC2のWebサーバで Basic認証かけたままヘルスチェックをOKにしたい

More than 1 year has passed since last update.

ヘルスチェックをファビコンで・・・だと・・・

その場合の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

これで解決できたのでまあ満足でございます!

maodev
PHPを中心に AWS設定したり、いろいろやってるエンジニアになりたい人
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away