2017-10-21 113 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; 
}