- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安Apache维护基地 来源:黑客防线网安Apache优化网 浏览次数:0 |
访问apache静态的http内容,有时候比较慢,有时候“找不到网页”404错误;另外在error.log里也报错:
[Mon May 26 10:11:47 2008] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
【原因:】
winnt(MPM) - Apache 2.2 参考手册有下列描述Apache MPM winnt
说明 专门为Windows NT优化过的MPM 状态 MPM 模块名 mpm_winnt_module 源文件 mpm_winnt.c 概述
该多路处理模块(MPM)是Windows NT上的默认值。它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。
Win32DisableAcceptEx 指令
说明 使用accept()代替AcceptEx()接受网络链接 语法 Win32DisableAcceptEx
默认值 AcceptEx()
是默认的,使用这个指令将禁用它。作用域 server config 状态 MPM 模块 mpm_winnt 兼容性 仅在 Apache 2.0.49 及以后的版本中可用
AcceptEx()
是一个微软的WinSock2 API ,通过使用BSD风格的accept()
API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()
的正确操作。如果你遇到类似于如下的错误:
[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.
你就需要使用这个指令来禁止使用
AcceptEx()
。
【解决办法:】
问题一、在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:
<IfModule mpm_winnt.c>
ThreadsPerChild 150
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
这样可以允许并发连接更大一些。同时性能上也不会有明显的降低。
如果Apache的error.log还是出现大量的:Sat Dec 24 17:21:28 2006] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed。可以参考下列配置:
1、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾.
2、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。
3、然后退出Apache,再打开启动就可以了,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可转帖 (3):
[warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
以前也看到,但忽略了。这回不能再放过她了。
看了几篇(winnt(MPM) - Apache 2.2 中文版参考手册),说是因为一些流行的视窗系统产品,比如防病毒软件或虚拟专用网络软件,会干扰 的正确操作。于是在apache设置文件中添加如下语句:
Accep
tEx()<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
停止Apache,再启动。确实新设置起作用了: [notice] Disabled use of AcceptEx() WinSock2 API
[notice] mod_python: Creating 8 session mutexes based on 0 max processes and 1000 max threads.
[notice] Child 2380: Child process is running
[notice] Child 2380: Acquired the start mutex.
[notice] Child 2380: Starting 1000 worker threads.
okay,似乎错误不再来了。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |