Nginx防慢连接攻击实战:几行配置挡住Slowloris

来源:互联网 时间:2026-08-25

做站长最怕的不是没流量,是服务器莫名其妙瘫了。Slowloris 这类慢连接攻击不发送大量请求,而是故意把连接拖住,耗光 Nginx 的 worker 进程。你的网站可能瞬间从“打不开”变成完全无响应。

 

应对思路很简单:给连接设置合理的超时阈值。客户端发完头部就超时、发body 也超时、整体发送还超时,三个时间窗口一收紧,攻击者就没了拖下去的空间。

http {

client_header_timeout 10s;   #读取请求头超时时间

client_body_timeout  10s;    #读取请求体超时时间

send_timeout         10s;    #发送响应超时时间

keepalive_timeout    30s;    #长连接保持时间

 

#限制单IP连接数,进一步压制慢连接

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {

limit_conn addr 30;

}

}

这里的时间值不是越小越好。如果你的接口有上传大文件的功能,client_body_timeout 可以放宽到 60 秒,甚至针对上传路径单独写一个 location。核心原则是:正常用户用不上那么长时间。

配置改完后用nginx -t 检查语法,reload 平滑生效。可以用 slowhttptest 工具自己压测一下,看改成 10 秒后连接还能不能被挂住。真实业务里我习惯把这几个值默认设为 10 秒,上传接口单独放开。

相关文章

标签:

A5创业网 版权所有