使用Nginx防御CC攻击
本文主要介绍了有关使用Nginx防御CC攻击的一些配置。CC攻击针对的是服务器上面的内存和CPU资源,因此通常会找到一些比较高消耗的接口,例如search.php之类的需要大量sql查询的接口。因此,明白了这一点,我们就很好防御了,主要是针对单个ip地址的连接数和请求php文件的密度来控制的。
我们主要用到的是Nginx中提供的两个limit模块:
ngx_http_limit_conn_module ngx_http_limit_req_module
http{ ....... geo $limited{ default 1; #公司 119.123.5.0/24 0; } ......... } map $limited $limit { 1 $binary_remote_addr; 0 ""; } http{ ... limit_req_zone $limit zone=one:10m rate=20r/m; ##平均20r/m 每分钟20个请求 ... } location ~ \.php$ { ... limit_req zone=one burst=5 nodelay; ... } http{ ... limit_conn_zone $limit zone=addr:10m; ... } view sourceprint?http{ ... limit_conn_zone $binary_remote_addr zone=addr:10m; ... } server { location /download/ { limit_conn addr 5; }