#author("2018-07-13T10:15:40+00:00","default:kazuma","kazuma") #author("2019-01-22T06:10:10+00:00","default:kazuma","kazuma") [[nginx]] * 特定のURLだけをIP制限する [#h9b5b9c5] よくあるパターン。外部には公開したくないURLがあった場合にIP制限をするには下記のように記述する。 location /admin { allow 接続許可をするIPアドレス; deny all; } * 特定のURLだけを外部公開して、ほかはIP制限する [#v5274dec] あんまりないと思うが、基本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単位で指定する場合 [#bf4d4e29] 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; } ~ ~