我打开了一个到 Apache 服务器的套接字连接,但是我没有发送任何等待特定时间的请求。我期望 Apache 使这个空闲套接字连接保持活动状态多久?
情况是Apache服务器的资源有限,连接需要在它们全部消失之前提前分配。
发送请求后,服务器通告其超时策略:
KeepAlive:超时=15,最大=50
如果后续请求的发送时间超过 15 秒,则会出现“服务器已关闭连接”错误。所以它确实执行了该政策。
然而,似乎如果连接打开后没有发送请求,Apache 即使长达 10 分钟也不会关闭它。
有人可以阐明 Apache 在这种情况下的行为吗?
根据Apache Core Features,TimeOut Directive默认超时为 300 秒,但它是可配置的。
对于保持活动连接(在第一个请求之后),默认超时为 5 秒(请参阅Apache 核心功能、KeepAliveTimeout 指令)。在 Apache 2.0 中,默认值为 15 秒。它也是可配置的。
此外,还有一个mod_reqtimeoutApache 模块提供了一些微调设置。
我认为上述任何值都不能通过 http 标头或任何其他形式供 http 客户端使用。(当然,保活值除外。)