CC攻击是指攻击者控制大量IP,不停地发大量数据包给网站服务器造成服务器资源耗尽,一直到宕机崩溃。
这次就来讲讲网站限流的方法来缓解这种攻击,还是分两部分讲,nginx上 和 Cloudflare上各自的限流方法。
Nginx 限流配置
首先要讲的还是非CF建站,部署在 nginx 上的方法,虽然俺以为限流部署在 iptables 上可能更好点,但谁叫俺和 nginx 比较熟呢?
利用 nginx 的请求限制模块 ngx_http_limit_req_module,使用 limit_req_zone 来配置速率,如下:
#http段配置如下
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
#变量:$binary_remote_addr,这里是客户端的ip地址
#zone 生成的内存区域大小
#2r/s,限制每秒访问两次
#server段配置如下
#burst=4 允许4个突发
#nodelay是对放到burst队列中的请求立即处理
#444是nginx自定义的一个非标准状态码,它会立即关闭连接,连响应头也不给客户端发
server {
location / {
limit_req zone=mylimit burst=4 nodelay;
limit_req_status 444;
}
}
CF限流规则
上面是 nginx 上的配置,如果你使用 Cloudflare CDN 的话,就不需要上面配置了,因为去年起CF就给免费用户开放了 limit 限流规则,下面就来讲讲CF页面怎么配置?
CF页面 — 安全性 — WAF — 速率限制规则 — 创建一个规则
同IP每10秒超过60请求,会阻止访问,如图:

表达式:
(http.request.uri.path contains "/")
以上就是Cloudflare的限流配置,当然CF还有许多安全配置,这个以后再详细讲。
嗯,今天的小课堂就到这里了,下课!