跳转至

低 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 与模块。 了解更多.