Nginx 如何对特定文件夹设置限制请求?

Nginx 如何对特定文件夹设置限制请求?,nginx,Nginx,如何在所有文件夹上设置limit_req,例如“uploads and public”文件夹除外 我所尝试的: location / { root /var/www/html/public; if ( $uri !~ ^/(uploads|public) ) { limit_req zone=one burst=5 nodelay;

如何在所有文件夹上设置limit_req,例如“uploads and public”文件夹除外

我所尝试的:

    location / {
        root /var/www/html/public;
                            if ( $uri !~ ^/(uploads|public) ) {
                                limit_req zone=one burst=5 nodelay;
                            }
...
错误:

nginx: [emerg] "limit_req" directive is not allowed here in /etc/nginx/sites-enabled/my.conf:20

这是不允许在
if
中使用指令的情况之一

您可以使用中间变量:

set $burst 75;
if ( $uri !~ ^/(uploads|public) ) {
    set $burst 5;
}
limit_req zone=one burst=5 nodelay;
或者有一个单独的
位置

关于未来想法的更多细节,请参见对更详细问题的回答: