トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

apache:SetEnvIfでHTTPヘッダー情報をもとに制御する のバックアップ差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*apache:SetEnvIfでHTTPヘッダー情報をもとに制御する [#ucb2ff01]

たとえば、ロードバランサーを使用している環境で、クライアントのIPアドレスでアクセス制御をしたいとき、こんな感じでできます。

 SetEnvIf X-Forwarded-For "^192.[1-3][0-9]" TESTOK
 <Location />  Order Deny,Allow
   Deny from all
   Allow from env=TESTOK
 </Location>

さて、動作確認したいけど、確認できる環境にはロードバランサが無い場合が多いですよね。そんな場合でも、疎通レベルではcurlに「-H」オプションをつけて実行することで確認できます。

こんな感じです。

 [root@localhost ~]#  curl -H "X-Forwarded-For:192.22.192.11" http://localhost/test1/test.html
 10.43.86.115 test OK!
 [root@localhost ~]#  curl -H "X-Forwarded-For:192.42.192.11" http://localhost/test1/test.html
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <html><head>
 <title>403 Forbidden</title>
 </head><body>
 <h1>Forbidden</h1>
 <p>You don't have permission to access /test1/test.html
 on this server.</p>
 <hr>
 <address>Apache/2.2.3 (CentOS) Server at localhost Port 80</address>
 </body></html>
 

勿論、「X-Forwarded-For」以外の独自HEADERをもとに制御することもできます。例えば「TEST」とかもOK。

***参考サイト [#j0a2da5e]
 - [[Apache の環境変数:http://httpd.apache.org/docs/2.0/ja/env.html]]
 - [[Apache の環境変数:http://httpd.apache.org/docs/2.0/ja/mod/mod_setenvif.html#setenvif]]
 - [[Apache モジュール mod_access:http://httpd.apache.org/docs/2.0/ja/mod/mod_access.html]]
 - [[curl.1 man ページ:http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html]]