CC攻击(Challenge Collapsar Attack)是一种网络攻击方式,其目的是通过大量合法或伪造的小流量请求,耗尽服务器资源,导致正常用户无法访问,也称为“连接数攻击”或“请求速率限制攻击”。要在 nginx 中防止 CC 攻击,首先需要修改nginx的配置文件。
1.使用 nginx 的 limit_req 模块可以限制单个IP地址在一定时间内的请求次数。
http {
limit_req_zone $binary_remote_addr zone=myzone:10m rate=5r/s;
server {
location / {
limit_req zone=myzone burst=10 nodelay;
}
}
}
在上述配置中,limit_req_zone 指令定义了一个名为 myzone 的内存区域,它跟踪源 IP 地址,并且限定了每个 IP 每秒可以发起的请求次数(例如 rate=5r/s)。burst 参数允许突增连接数而不会立即返回错误,而 nodelay 参数可以使得请求不会因为超过速率而被延迟。
2.使用 nginx 的 limit_conn 模块可以限制单个IP地址的并发连接数。
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 5;
}
}
}
这里定义了一个名为 addr 的内存区域来跟踪并限制并发连接数(例如 limit_conn addr 5 表示每个 IP 最多可以有 5 个并发连接)。