APACHE的Win32DisableAcceptEx的问题

来源:互联网 发布:淘宝主营项目怎么改 编辑:程序博客网 时间:2024/03/28 22:05

Window下APACHE的Win32DisableAcceptEx的问题

【问题的提出:】 我用的是apache2.0.55+win2003,在使用了一段时间后,出现如下问题: apache正常启动,但是访问localhost或虚拟主机时,出现不能访问的情况,不是找不到服务器,是一直在显示【正在打开网页...】,然后就是长时间空白,Apache不工作。

【出现的问题:】 我就重装系统,在装好window2003server后,进行自动更新完毕后,安装apache2.0.55后,apache能正常启动,就出现上面的问题,然后卸掉装2.0.59、2.2.2、2.2.3都是这样的问题,没有办法,就format c盘重装window2003server,没有进行自动更新,安装apache2.0.55时, apache正常工作了,一段时间后就出现了这种问题,期间,win2003又进行了【自动更新】。系统就出现了这样的问题。

【现象:】 apache正常启动,但是访问localhost或虚拟主机时,出现不能访问的情况,不是找不到服务器,是一直在显示【正在打开网页...】,然后就是长时间空白。apache的error.log,里面出现大量的这样的错误信息: [Wed Nov 01 09:45:34 2006] [error] (OS 10038)在一个非套接字上尝试了一个操作。 : Child 816: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

【问题的原因:】 在网上查了一下,发现很多人碰到这个情况,原因是Apache 的AcceptEx在window下会出现这种问题,只在APAche2.0.49以上版本会有这中问题。 《Apache 2_2 中文版参考手册》上说:“AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果你遇到类似于如下的错误:一般的解决办法是关闭 AcceptEx()”。也就是说,可能是 Windows Update 或是防火墙、防毒软件更新了某些网络原件,造成 Microsoft WinSock v2 API 动作不正常,会干扰WinSock2 API,就会影响AcceptEx()的正确操作,就可能出现上面所出现的问题。但是关闭会影响Apache的性能。需要自己权衡利弊。因此如果没有什么错误发生,最好还是不要随便关闭这个功能比较好吧。

【解决办法:】在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:

\< IfModule mpm_winnt.c\>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
\</IfModule\>

这样可以允许并发连接更大一些。同时性能上也不会有明显的降低. 一般,这样设置基本就能搞定,但是我碰到的情况,就是想上面那样关闭AcceptEx,也会出现类似问题,Apache还是不能正常运作,error.log 出项了大量的:Sat Dec 24 17:21:28 2006] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.。又找了一下,发现了如下的一种解决办法,我试了试,果然可以,而且在多台服务器上试过,只要出现了AcceptEx 的问题,就能解决,具体设置为: 1、网上邻居-;本地连接-;属性-;internet协议(TCP/IP)-;属性-;高级-;wins标签-;去掉启用LMhosts查询前的勾. 2、控制面版-;windows防火墙-;高级标签-;本地连接设置-;服务的标签里勾选安全Web服务器(HTTPS)。 3、然后退出Apache,再打开启动就可以了 ,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可。

【建议:】以上问题在PHP2.0的版本里面好像没有出现,只出现在php5.1.x与Apahce2.0.49以后的版本,可能PHP2.0与Apache2.2的版本结合性比较好,所以建议大家在window下,最好使用Apahce2.2.3+PHP2.0的版本,比较稳定。
 

0 0
原创粉丝点击