我有一个显示图像的脚本,我正在尝试将以下php路由从limit_req
排除rewrite ^/([^@]*)@(d+xd+)$ /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;
}
那么,如何从limit_req中排除nginx config的路由(index.php?route = image)?
le:
我尝试了类似的操作,但我收到了一个错误" nginx:[egry]无效参数" 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;
}
}
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;
.....
}
我希望无需在这里解释一些东西,一切都清楚。使用 MAP 更好,因为Ifisevil。您还可以用$ request_uri替换$ arg_route。