【问题标题】:Nginx location search-terminating match with regexpNginx 位置搜索终止匹配正则表达式
【发布时间】:2017-10-21 00:13:11
【问题描述】:

我正在尝试为静态内容设置不同的 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。 ^~ 仅适用于文字吗?还有其他方法可以以干净的方式实现这一目标吗?

【问题讨论】:

    标签: http nginx ddos


    【解决方案1】:

    根据nginxdocumentation

    下面的位置是在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;
    }
    

    【讨论】:

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