Nginx 位置搜索终止匹配正则表达式
Nginx location search-terminating match with regexp
我正在尝试为静态内容设置不同的 limit_req 区域。
location ^~ /img {
limit_req zone=static burst=60 nodelay;
}
location ^~ /logos {
limit_req zone=static burst=60 nodelay;
}
location ^~ /js {
limit_req zone=static burst=60 nodelay;
}
location ^~ /plugin {
limit_req zone=static burst=60 nodelay;
}
location / {
limit_req zone=protected burst=5 nodelay;
}
这工作正常,但我想将这些位置压缩到一个正则表达式中:
location ^~ /(img|logos|js|plugin) {
limit_req zone=static burst=60 nodelay;
}
试过了,但没有用。仅适用于不带 ^ 的 ~,它将匹配位置 /,将区域设置回 protected
。 ^~ 仅适用于文字吗?还有其他方法可以干净地实现这一目标吗?
根据 nginx documentation
下面的位置定义在proxy_pass之前,符合static下js和css文件的请求。此位置块用于您希望在站点中允许的不同扩展程序。
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
limit_req zone=static burst=60 nodelay;
log_not_found off;
}
或者,你可以使用这个我认为这应该可以正常工作
location ~ ^/(img|logos|js|plugin)/ {
root /project_root_path;
limit_req zone=static burst=60 nodelay;
}
我正在尝试为静态内容设置不同的 limit_req 区域。
location ^~ /img {
limit_req zone=static burst=60 nodelay;
}
location ^~ /logos {
limit_req zone=static burst=60 nodelay;
}
location ^~ /js {
limit_req zone=static burst=60 nodelay;
}
location ^~ /plugin {
limit_req zone=static burst=60 nodelay;
}
location / {
limit_req zone=protected burst=5 nodelay;
}
这工作正常,但我想将这些位置压缩到一个正则表达式中:
location ^~ /(img|logos|js|plugin) {
limit_req zone=static burst=60 nodelay;
}
试过了,但没有用。仅适用于不带 ^ 的 ~,它将匹配位置 /,将区域设置回 protected
。 ^~ 仅适用于文字吗?还有其他方法可以干净地实现这一目标吗?
根据 nginx documentation
下面的位置定义在proxy_pass之前,符合static下js和css文件的请求。此位置块用于您希望在站点中允许的不同扩展程序。
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
limit_req zone=static burst=60 nodelay;
log_not_found off;
}
或者,你可以使用这个我认为这应该可以正常工作
location ~ ^/(img|logos|js|plugin)/ {
root /project_root_path;
limit_req zone=static burst=60 nodelay;
}