Nginx位置块中的正则表达式

时间:2019-04-30 06:31:49

标签: nginx nginx-reverse-proxy rate-limiting nginx-config

我想对各种帐户(例如5010和5011)在nginx上启用速率限制。

当我取消对仅帐户5010的注释行的注释时,它工作得很好。

我尝试了以下代码块,但无法正常工作。

   location ^~ /google/(5010|5011)/photos {
   #location ^~ /google/5010/photos {
        #apply rate limiting
        limit_req zone=sone burst=1 nodelay;
        limit_req_status 429;
        limit_conn_status 429;

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

尝试使用~*代替^~

location ~* /google/(5010|5011)/photos 

docs开始:

  

可以通过前缀字符串或正则表达式定义位置。正则表达式由前面的“〜*”修饰符(不区分大小写)或“〜”修饰符(不区分大小写)指定。

^~

  

如果最长匹配前缀位置具有“ ^〜”修饰符,则不检查正则表达式。