Tom*_*ski 30 windows windows-7 apache-http-server comodo-firewall
(我知道这个问题的答案。发布这个只是为了与社区分享答案)
我的本地 (Windows 7) Apache 2.4 实例在提供某些 URL 时遇到延迟或挂断,具体取决于我使用哪个浏览器访问这些 URL。
使用 Firefox/Chrome,Apache对某些 URL 的响应很慢。在任何给定的 URL 上,大约有 20% 的时间出现缓慢。当它确实发生时,有 5 秒的延迟,在此期间 Firefox 会显示“正在等待...”状态。
使用 Internet Explorer 9,Apache 只是挂起并停止服务任何请求(使用任何浏览器),直到它重新启动。
我尝试了许多更改httpd.conf
(例如禁用 KeepAlive、EnableMMAP、HostnameLookups),但似乎没有任何效果。
Eri*_*sum 35
Thomasz 的回答
解决方案是将以下内容添加到您的httpd.conf
:
AcceptFilter http none
AcceptFilter https none
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,这具有禁用 AcceptEx() API(WinSock 的一部分)的效果,它提供了一些性能改进,但可能与 Comodo 防火墙冲突。
将 Comodo Firewall 置于“禁用”模式无济于事,因为请求可能仍然通过 Comodo 的网络代码。我认为必须完全卸载 Comodo 才能消除问题(尽管我还没有尝试过)。
如果您在 Apache 2.2 中遇到类似问题,则应改用 Win32DisableAcceptEx 指令。
引用自http://httpd.apache.org/docs/2.4/mod/core.html:
Windows 上的默认值是:
AcceptFilter http data
AcceptFilter https data
Window 的 mpm_winnt 解释 AcceptFilter 以切换 AcceptEx() API,并且不支持 http 协议缓冲。有两个值利用 Windows AcceptEx() API 并在连接之间回收网络套接字。data 一直等到数据按照上面记录的方式传输,并且初始数据缓冲区和网络端点地址都从单个 AcceptEx() 调用中检索。connect 将使用 AcceptEx() API,也检索网络端点地址,但与 none 一样,connect 选项不等待初始数据传输。
在 Windows 上,没有使用 accept() 而不是 AcceptEx() 并且不会在连接之间回收套接字。这对于驱动程序支持损坏的网络适配器以及某些虚拟网络提供商(例如 vpn 驱动程序、垃圾邮件、病毒或间谍软件过滤器)非常有用。
另见:http : //forums.comodo.com/help-for-comodo-antivirus/conflict-with-apache-t260.0.html;msg31636#msg31636
归档时间: |
|
查看次数: |
31618 次 |
最近记录: |