如何在某些文件夹上设置limit_req?

时间:2014-01-07 18:01:31

标签: nginx

如何在所有文件夹上设置limit_req,例如“上传和公开”除外。

我尝试了什么:

    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

1 个答案:

答案 0 :(得分:0)

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

您可以使用中间变量:

set $burst 75;
if ( $uri !~ ^/(uploads|public) ) {
    set $burst 5;
}
limit_req zone=one burst=5 nodelay;

或者有一个单独的location

更详细的问题答案涵盖了未来想法的更多细节:Magento and nginx - multiwebsite configuration