【问题标题】:Limiting http request in Nginx在 Nginx 中限制 http 请求
【发布时间】:2017-02-28 15:28:21
【问题描述】:

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;
            }

知道我做错了什么吗?有没有可能?

【问题讨论】:

    标签: http nginx limit except


    【解决方案1】:

    以下将拒绝除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;
                }
    

    【讨论】:

    • 如何将不允许的方法重定向到另一个proxy_pass
    • @W.M.您可以使用 if 动词重定向 if ($request_method = POST ) { return 301 https://example.com$request_uri; }
    • 为了清楚起见,因为我刚刚遇到了同样的问题,这限制了除了 GET 之外的一切。即 将被允许用于 POST、PUT 等,但其他任何情况都不会。一切都将被允许 GET 请求。
    猜你喜欢
    • 2011-09-06
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多