apache:SetEnvIfでHTTPヘッダー情報をもとに制御する のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- apache:SetEnvIfでHTTPヘッダー情報をもとに制御する へ行く。
- 1 (2012-02-03 (金) 21:18:01)
apache:SetEnvIf?でHTTPヘッダー情報をもとに制御する †
たとえば、ロードバランサーを使用している環境で、クライアントの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。
参考サイト †
- [[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]]