1

次のような書き換えルールがあります。

if ( $request_uri ~ https://subdomain.domain.com/abc/xyzdirector/login.do ) {
return    444;
}

これで問題なく動作しますが、このルールには例外が必要です。IP ABCD のパススルーを許可したい。つまり、この IP はこのルールの対象にすべきではない。どうやってそれをするのですか?

4

1 に答える 1

3

http://wiki.nginx.org/HttpCoreModule#Variablesには、特に次のものがあります。

$remote_addr
The address of the client. 

$binary_remote_addr
The address of the client in binary form; 

ノート:

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#ifは、サーバーと場所として if ステートメントの許可されたコンテキストを示します

つまり、if ステートメントをネストすることはできないため、次のようになります。

location /abc/xyzdirector/login.do { 
  if ( $remote_addr != <allowed adress> ) { return 444;}       
  #if you get here it was an allowed adress so add config to server the request.
}
于 2012-10-10T19:08:33.217 に答える