Chrome 的 keep-alive 数据包似乎阻止 Apache 响应来自其他客户端的所有请求。它们既不会出现在访问日志中,也不会出现在 mod_status 中,并且浏览器会一直等待答案。无论在 Apache 中启用还是禁用保持活动,都会发生这种情况。
这只发生在客户端在另一个网络上时,这似乎与 Chrome 功能有关,以保持连接在 NAT 网关/防火墙后面。从服务器机器上的浏览器,我总是可以访问 Apache 上的页面,即使第二个网络上的客户端被阻止。
在此 Wireshark 屏幕上,您可以看到当请求被 Chrome 阻止时服务器上发生的情况的示例:
当我关闭 Chrome 实例时,Apache 会继续回答之前收到的请求,这就是它们出现在访问日志中的时间。
当我在 Chrome 中刷新页面时,有时其他请求也会得到答复。
这是 Apache 错误还是配置错误?或者它可能是由网络配置引起的?
服务器:
- 阿帕奇:2.4.20 x64 VC14
- PHP:7.0.5 TS x64 VC14
- 视窗服务器 2012 R2
自从我更新到 Apache 2.4.25 x64 VC14 后,该错误已修复。