我在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。
一切都很好,今天上午,当我(或其他用户)尝试访问我托pipe的某个网站时,我经历了相当长的延迟。 当我能够访问其中的一个时,我点击每个菜单,有时这个页面很快,有时又很慢。
目前,我做了一个回滚Apache的win32。
在发布之前我做了同样的研究,但到目前为止还没有太多的线索。 它看起来喜欢没有足够的过程来同时接受每个人,因为今天早上有更多的用户连接到我的服务器,而不是晚上。
任何人都有线索来指导我? 谢谢
我想指出FastCGI Handler上的所有错误,故事中的坏人是Apache 2.4.4 x86,也就是在Windows下默认设置为x64。
解决方法是将以下内容添加到您的httpd.conf :
AcceptFilter http none AcceptFilter https none
有没有Apache的解释
http://httpd.apache.org/docs/2.4/mod/core.html
Windows上的默认值是:
AcceptFilter http数据
AcceptFilter https数据窗口的mpm_winnt解释AcceptFilter切换AcceptEx()API,并不支持http协议缓冲。 有两个值使用Windows AcceptEx()API,并将在连接之间回收networking套接字。 数据一直等到数据传输完毕,如上所述,并且初始数据缓冲区和networking端点地址都从单个AcceptEx()调用中检索。 连接将使用AcceptEx()API,也检索networking端点地址,但没有连接选项不等待最初的数据传输。
在Windows上,没有一个使用accept()而不是AcceptEx(),并且不会在连接之间重新使用套接字。 这对于驱动程序支持受损的networking适配器以及某些虚拟networking提供程序(如vpn驱动程序或垃圾邮件,病毒或间谍软件filter)非常有用。