2017-10-21 88 views
0

我想为静态内容设置一个不同的limit_req区域。Nginx的位置搜索终止匹配与正则表达式

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; 
} 

尝试这样做,但它不工作。仅适用于〜without ^,然后将匹配位置/,将区域设置回protected。是^〜只与文字工作?任何其他方式来实现这个干净的方式?

回答

0

根据nginx的documentation

以下位置的一个与前proxy_pass定义,并且它的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; 
}