限制Nginx中的http请求

限制Nginx中的http请求,http,nginx,limit,except,Http,Nginx,Limit,Except,Nginx配置带来了全新的Noob。我试图限制基于IP的http请求:到目前为止,我已经做到了:我需要允许所有GET,但是我需要将PUT DELETE和POST限制在特定的IP范围内 location / { index app.php index.php index.html; try_files $uri @rewriteapp; limit_except GET { allow

Nginx配置带来了全新的Noob。我试图限制基于IP的http请求:到目前为止,我已经做到了:我需要允许所有GET,但是我需要将PUT DELETE和POST限制在特定的IP范围内

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;
            }
位置/{
index app.php index.php index.html;
尝试_files$uri@rewriteapp;
除GET外的限制{
允许一切;
}
限制除放置删除帖子外的其他内容{
允许;
允许;
否认一切;
}

你知道我弄错了什么吗?有可能吗?

除了
GET
HEAD
之外,以下方法都会被拒绝。如果客户端来自指定的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;
            }
位置/{
index app.php index.php index.html;
尝试_files$uri@rewriteapp;
除GET外的限制{
允许;
允许;
否认一切;
}

如何将不允许的方法重定向到另一个
proxy\u pass
?@W.M.您可以使用if动词
if($request\u method=POST){返回301https://example.com$request_uri;}
为了清楚起见,因为我刚刚遇到了同样的问题,这限制了除GET之外的所有内容。例如,将允许在POST、PUT等上发布,但其他内容将不允许。所有内容都将允许GET请求。