网站 - Apache 2.4.4 x64 FastCGI 下的延迟

网站 - Apache 2.4.4 x64 FastCGI 下的延迟

我在 Windows 2008 R2 x64 下运行 VPS 服务器作为 Web 服务器。

我正在运行带有标准 php5_module 的 Apache 2.2 x86 / Php 5.3.1 句柄,并且昨晚我使用 FastCgGI x64 作为处理程序将其升级到 Apache 2.4.4 x64 / Php 5.3.24。

那时一切都很好,但今天早上,当我(或其他用户)尝试访问我托管的某个网站时,我遇到了相当长的延迟。当我能够访问其中一个网站时,我点击了每个菜单,有时页面很快,有时又很慢。

目前,我已回滚到 Apache win32。

我在发帖之前也做过同样的研究,但到目前为止还没有太多线索。看起来进程不足以同时接受所有人,因为今天早上连接到我服务器的用户比晚上还多。

有人能给我一些线索吗?谢谢

答案1

我认为所有错误都出在 FastCGI Handler 上,而故事中的罪魁祸首是 Apache 2.4.4 x86 或 x64,这是 Windows 下的默认设置。

解决方案是将以下内容添加到您的httpd.conf

AcceptFilter http none
AcceptFilter https none

Apache 有解释吗
http://httpd.apache.org/docs/2.4/mod/core.html

Windows 上的默认值为:

AcceptFilter http 数据
AcceptFilter https 数据

Window 的 mpm_winnt 解释 AcceptFilter 以切换 AcceptEx() API,并且不支持 http 协议缓冲。有两个值使用 Windows AcceptEx() API 并将在连接之间循环使用网络套接字。data 等待直到数据已按上述方式传输,并且初始数据缓冲区和网络端点地址均从单个 AcceptEx() 调用中检索。connect 将使用 AcceptEx() API,还会检索网络端点地址,但与 none 不同,connect 选项不会等待初始数据传输。

在 Windows 上,none 使用 accept() 而不是 AcceptEx(),并且不会在连接之间回收套接字。这对于驱动程序支持损坏的网络适配器以及某些虚拟网络提供商(如 vpn 驱动程序或垃圾邮件、病毒或间谍软件过滤器)非常有用。

我要感谢一位超级用户就此主题发表的帖子
https://superuser.com/questions/516030/apache-2-4-on-windows-responds-slowly-hangs-when-serving-some-dynamic-pages

相关内容