是否有可能在nginx.conf文件中限制传入的POST请求只有几页?
假设我只想在signup.php和login.php上允许发布请求,但是不能在所有其他可能的页面上发布。
我为什么要问的原因是我的服务器经常被随机页面上的POST请求淹没,导致不必要的负载。
我尝试在PHP中阻止它,但在这种情况下,nginx仍然需要处理和接受完整的POST数据。 这是我试图阻止。
您需要创build多个位置来处理不同的情况:
# including your fastcgi params at a higher level # allows them to be inherited in both locations include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; # regex locations are matched in order, so this will handle # /anything/signup.php and /anything/login.php # If you want to just have /signup.php and /login.php, # add ^ before the / or you could split this into two more: # location = /signup.php abd location = /login.php location ~ /(signup|login)\.php$ { fastcgi_pass php; } # this will handle the rest of the php requests location ~ \.php$ { # Only allow GET and HEAD requests for all other php scripts limit_except GET HEAD { allow 1.1.1.1/32; #trusted ip deny all; } fastcgi_pass php; }