在 Nginx 中对整个 Web 服务器中的所有文件进行速率限制的最佳方法是什么?

在 Nginx 中对整个 Web 服务器中的所有文件进行速率限制的最佳方法是什么?

我在 nginx 配置中设置了速率限制。通常,你会定义一个位置并定义速率限制区域。我希望该区域适用于所有文件在网络服务器上。

limit_req_zone $binary_remote_addr zone=zone1:3m rate=5r/m;
limit_req_status 429;

server {
    listen 80 http2;
    listen 443 ssl http2;

    server_name SERVERNAME;

    root /var/www/cdn/public_html/;

    #SSL Config
    ssl_certificate PATH;
    ssl_certificate_key PATH;

    location / {
        limit_req zone=zone1 nodelay;
    }
}

我知道该位置/不起作用。这就是为什么我问如何将其应用于所有文件。

例如我所说的文件/files/foo.zip

答案1

limit_req指令可能出现在httpserverlocation上下文中。

你的location /区块应该可以工作,如果它是仅有的在该配置中的位置(正如您的示例所暗示的那样)。

但要将其应用到整个服务器,明显的放置位置就是server块。

相关内容