2017-02-28 58 views
1

Nginx configs提供了完全新的Noob。我想基於IP限制HTTP請求:這裏是我到目前爲止:我需要讓所有的GET,但是我需要限制PUT DELETE和POST到特定IP範圍在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動詞來重定向,如果($ request_method = POST){ return 301 https://example.com$request_uri; }' –

+1

爲了清楚起見,我剛剛遇到同樣的問題,這限制了一切,但限制了GET。即將被允許在POST,PUT等上,但沒有別的。一切都會被允許GET請求。 –