我有一个显示图片的脚本,我试图从limit_req中排除以下php路由
rewrite ^/([^\@]*)\@(\d+x\d+)$ /index.php?route=image&action=show&path=$1&size=$2 break;
我有
location ~ .php$ {
limit_req zone=req_limit_per_ip burst=3 nodelay;
limit_conn conn_limit_per_ip 3;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
用于我使用的图像和其他文件格式
location ~* ^.+.(jpg|jpeg|gif|png|svg|ico|css|less|xml|html?|swf|js|ttf)$ {
expires 10y;
}
那么如何从nginx配置中的limit_req中排除路由(index.php?route = image)?
LE
我尝试了类似的但是我收到错误" nginx:[emerg]无效参数" off"
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
limit_req zone=req_limit_per_ip burst=3 nodelay;
limit_conn conn_limit_per_ip 3;
location ~ "/foo/(.+)$" {
limit_req off;
}
}
答案 0 :(得分:0)
http {
.....
map $arg_route $limit {
default $binary_remote_addr;
"image" "";
}
limit_req_zone $limit zone=one:10m rate=3r/s;
.....
}
server {
.....
limit_req zone=one burst=5;
.....
}
我希望没有必要在这里解释一切,一切都很清楚。使用地图会更好,因为ifisevil。 你也可以用$ request_uri替换$ arg_route。