nginx

特定のURLだけをIP制限する

よくあるパターン。外部には公開したくないURLがあった場合にIP制限をするには下記のように記述する。

location /admin {
  allow 接続許可をするIPアドレス;
  deny all;
}

特定のURLだけを外部公開して、ほかはIP制限する

あんまりないと思うが、基本IP制限をして特定のURLだけを外部公開するパターン。 acl変数がtrueの場合は503を返さないが、それ以外は503が変えるようにする。 このようにnginxで変数を使えば簡単にできる。他にも方法はあるかもだけど。

 set $acl false;
 if ( $remote_addr = 接続許可をするIPアドレス ){ set $acl true; }
 if ( $request_uri ~* /global/ ){ set $acl true; }

location / {
    if ( $acl = false ){ return 503; }
}

CIDR単位で指定する場合

CIDR単位で指定したい場合、上記ではCIDRを書いても許可されないので注意。
下記のようにnginxのgeoモジュールで許可する必要がある。

geo $mysubnet {
 default 0;
 XXX.XXX.XXX.0/24 1;
}
server {
  if ( $mysubnet ) { set $acl true; }

location /admin {
   if ( $acl = false ){ return 503; }




トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11