#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; }

~
~

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS