多语言展示
当前在线:1384今日阅读:6今日分享:31

nginx服务器如何防止被攻击

nginx服务器部署后,在面对DDoS常见攻击时需要做好以下防范措施。
限制每秒访问数
1

ngx_http_limit_req_module模块通过漏桶原理来限制单位时间内的请求数,一旦单位时间内请求数超过限制,就会返回503错误。配置需要在两个地方设置:

2

$binary_remote_addr  二进制远程地址 zone=one:10m    定义zone名字叫one,并为这个zone分配10M内存,用来存储会话(二进制远程地址),1m内存可以保存16000会话 rate=10r/s;     限制频率为每秒10个请求 burst=5

限制链接数

ngx_http_limit_conn_module的配置方法和参数与http_limit_req模块很像,参数少,要简单很多

白名单设置

http_limit_conn 和http_limit_req模块限制了单ip单位时间内的并发和请求数,但是如果Nginx前面有lvs或者haproxy之类的负载均衡或者反向代 理,nginx获取的都是来自负载均衡的连接或请求,这时不应该限制负载均衡的连接和请求,就需要geo和map模块设置白名单:

测试

使用ab命令来模拟CC攻击,http_limit_conn 和http_limit_req模块要分开测试,同时注意http_limit_conn模块只统计正在被处理的请求(这些请求的头信息已被完全读入)所 在的连接。如果请求已经处理完,连接没有被关闭时,是不会被统计的。这时用netstat看到连接数可以超过限定的数量,不会被阻止。 举例:ab -n 请求数 -c 并发 http://10.11.15.174/i.php

推荐信息