在Bluehost 共享主机(Apache 2.2 + FastCGI + APC),我遇到的问题就是有些请求几乎完全等一下做出回应。然而在 PHP 上花费的时间只是两秒钟。为了演示这个问题,我创建了一个临时的测试页。
示例输出:
(来源:inka网站)
当我向 Bluehost 支持人员询问此问题时,我得到了以下答复:“fastcgi 进程不会持续运行,它们只会在一段特定时间内持续运行,这可以解释您所看到的超时,它的流量会产生新的超时。[...]”
我知道生成新的 FastCGI 进程需要一些时间。但差不多正好一分钟?那肯定是超时了。但那会是哪个超时呢?
我最终想要的是:即使请求失败,响应时间也不应该超过五秒钟。当我要求 Bluehost 支持人员相应地设置 Apache TimeOut 指令时,他们告诉我:“即使在虚拟主机级别,我们也不会修改 Apache 配置文件。”
答案1
我多次攻击你的服务器。以下是我发现的内容:
- 我无法重现 sleepTime=0 的问题。
- 当 sleepTime=2 时,我收到了几个 500 服务器错误 - 以及看到您描述的问题。
- 当问题发生时,响应日期标头显示仅过了 2 秒 - 因此请求及时到达服务器。
- 问题发生在 Connection: keep-alive 和 Connection: close 上,但有趣的是,服务器的 Keep-Alive 响应标头的“最大”数字偶尔会跳跃(从 25 到 18),并且服务器经常意外关闭连接(在最大值用完之前)。
我本来想把这个问题写在评论里,因为这不是什么好办法——但我没有空间了。你肯定遇到了一个可能导致你的主机失去客户的问题,所以我认为他们应该更认真地对待你。