nginx过滤http洪水的配置

2023-11-22

A 我的服务器上有 http 洪水,没有太多查询,但无论如何。日志中的查询

95.55.237.3 - - [06/Sep/2012:14:38:23 +0400]“GET / HTTP/1.0”200 35551“-”“Mozilla/5.0(Windows;U;Windows NT 6.1;en-US)” “-”| “-” 93.78.44.25 - - [06/Sep/2012:14:38:23 +0400]“GET / HTTP/1.0”200 36051“-”“Mozilla/5.0(Windows;U;Windows NT 6.1;en-US)” “-”| “-” 46.118.112.3 - - [06/Sep/2012:14:38:23 +0400]“GET / HTTP/1.0”200 35551“-”“Mozilla/5.0(Windows;U;Windows NT 6.1;en-US)” “-”| “-”

我在 nginx 配置中尝试了这个过滤器

server {
    .....
    set $add 1;
    set $ban '';

###### Rule 1 ########
if ($http_referer = '-' ) {
    set $ban $ban$add;
}
if ($request_uri = '/') {
    set $ban $ban$add;
}

if ($http_user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)') {
    set $ban $ban$add;
}

if ($ban = 111) {
    return 444;
}
######################
......
}

但仍然没有查询得到 200 OK。有人可以帮忙吗?


尝试在您的配置中添加类似以下指令以防止 http 洪水:

http {
  limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
  limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;

  server {
    limit_conn conn_limit_per_ip 10;
    limit_req zone=req_limit_per_ip burst=10 nodelay;
  }
} 

See http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html and http://nginx.org/en/docs/http/ngx_http_limit_req_module.html欲了解更多信息

有以下所有指令http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate

NOTE: http://www.botsvsbrowsers.com/details/504401/index.html表示上述用户代理不是已知的机器人

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx过滤http洪水的配置 的相关文章

随机推荐