【问题标题】:regex in location block of nginxnginx位置块中的正则表达式
【发布时间】:2019-04-30 16:25:38
【问题描述】:

我想在我的 nginx 上为 5010 和 5011 等各种帐户启用速率限制。

当我取消注释仅帐户 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;

我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    尝试使用~* 而不是^~

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

    来自docs

    位置可以由前缀字符串或正则表达式定义。正则表达式使用前面的“~*”修饰符(用于不区分大小写的匹配)或“~”修饰符(用于区分大小写的匹配)指定。

    ^~

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

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2020-09-11
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多