2017-02-28 4 views
1

완전히 새로운 Noob이 Nginx 설정에 제공됩니다. 여기에 지금까지이 작업은 다음과 같습니다 : 나는 IP를 기반으로 HTTP 요청을 제한하기 위해 노력하고있어하지만 내가 특정 IP에 DELETE 및 POST를 PUT 제한 할 필요가Nginx에서 HTTP 요청 제한하기

location/{ 
      index app.php index.php index.html; 
      try_files $uri @rewriteapp; 
      limit_except GET { 
        allow all; 
      } 
      limit_except PUT DELETE POST { 
        allow <IP SUBNET 1>; 
        allow <IP SUBNET 2>; 
        deny all; 
      } 

어떤 생각을 범위, 나는 모든 가져 허용해야 내가 잘못 됐어? 심지어 가능할까요?

답변

2

다음은 GETHEAD을 제외한 모든 방법을 거부합니다. 클라이언트가 지정된 IP 범위에서 왔으면 다른 방법에 액세스 할 수 있습니다.

location/{ 
      index app.php index.php index.html; 
      try_files $uri @rewriteapp; 

      limit_except GET { 
        allow <IP SUBNET 1>; 
        allow <IP SUBNET 2>; 
        deny all; 
      } 
+0

어떻게 다른 'proxy_pass'로 리디렉션 된 방법? –

+0

@ W.M. 동사 if 동사를 사용하여 리디렉션 할 수 있습니다. 'if ($ request_method = POST) { return 301 https : //example.com$request_uri; }' –

+1

명확성을 위해 방금 동일한 문제가 발생 했으므로이 모든 제한은 있습니다. 즉 은 POST, PUT 등에서 허용되지만 다른 것은 허용되지 않습니다. 모든 것이 GET 요청을 허용 할 것입니다. –