低 keepalive_requests 值¶
Gixy 检查 ID:low_keepalive_requests
keepalive_requests 指令设置通过一个 keep-alive 连接可以服务的最大请求数。在达到最大请求数后,连接将被关闭。
为什么这很重要¶
在 nginx 1.19.10 之前,默认值是 100。后来提高到 1000,因为低值可能会导致问题:
- HTTP/2 多路复用:现代浏览器打开较少的连接,但通过每个连接发送许多请求。低
keepalive_requests值会导致频繁的连接重置。 - 客户端断开连接:某些客户端(特别是通过 Burp 或 mitmproxy 等代理使用 HTTP/2 时)可能会在连接过早关闭时遇到请求失败。
- 性能开销:建立新连接有开销(TCP 握手、TLS 协商)。保持连接活跃更长时间可以提高性能。
错误示例¶
keepalive_requests 100;
这会在仅 100 个请求后强制关闭连接,可能会导致 HTTP/2 客户端出现问题。
正确示例¶
keepalive_requests 1000;
或者简单地省略该指令以使用 nginx 的默认值(自 nginx 1.19.10 以来为 1000)。
参考资料¶
加固 NGINX,使用维护的 RPM
使用 GetPageSpeed 提供的 NGINX Extras 在 RHEL/CentOS/Alma/Rocky 上获取持续更新的 NGINX 与模块。 了解更多.