nginxでIPアドレス制限
制限をかける
こんな感じでIP制限が書ける。
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2620:100:e000::8001;
deny all;
}
お決まりのallow,denyで制限したいもの、通したいものを指定。サブネット単位でのアクセス制限も可能。
上の例ではlocationディレクティブの中に入れているけど、http、server、locationどこに書いても大丈夫。
wikiにも「order of the deny/allow is of the utmost importance」とあるようにallowとdenyを書く順番がメチャクチャ重要になる。というのも上に書いているものから評価されるから。
location / {
deny all;
allow 192.168.1.0/24;
}
例えばこんなふうに書いてしまうと、どのアドレスも一番最初のdenyに引っかかってそこで評価が終了してしまって誰も見れなくなってしまう。