nginxのgeoモジュールが便利すぎる
なにができるの?
REMOTE_ADDRを列挙して変数に格納できます。
設定してみる
特定のIPしかアクセスさせたくないコンテンツがあるとします。
今回は例として「/admin」以下へのアクセスはローカルネットワークからのアクセスのみを許可させます。
http { ・ ・ ・ geo $access_allowed { default disable; 127.0.0.1 allow; 192.168.0.0/24 allow; } ・ ・ ・ server { ・ ・ ・ location /admin { if ($access_allowd = "disable") { return 404; } } ・ ・ ・ } }
アクセス許可対象を増やしたい場合はgeoディレクティブにIPを追加するだけ。
さらにレスポンスコードも指定できるのもイイですね。
Apacheでやろうとする場合はmod_rewriteでごにょごにょしなきゃいけなかったのでこれかなり楽な設定です。