apache静态的http内容比较慢找不到网页404错误error.log报错_WIN2003服务器维护_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

apache静态的http内容比较慢找不到网页404错误error.log报错

作者:黑客防线网安Apache维护基地 来源:黑客防线网安Apache优化网 浏览次数:0

本篇关键词:apache静态http
黑客防线网安网讯:
访问apache静态的http内容,有时候比较慢,有时候“找不到网页”404错误;另外在error.log里也报错:

访问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 中文版参考手册),说是因为一些流行的视窗系统产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。于是在apache设置文件中添加如下语句:

<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,似乎错误不再来了。

问题一、
Apache日志中“指定的网络名不再可用”问题的解决
现象:
[Sat Mar 03 13:29:49 2007] [warn] (OS 64)指定的网络名不再可用。   : winnt_accept: Asynchronous AcceptEx failed.
出现这个故障时硬盘灯狂闪,内存占用极大,访问极慢。
分析:
AcceptEx() 是 Microsoft WinSock v2 API 一组提升网路效率 API 中的指令。而且在 Windows 上似乎蛮有可能出问题的。
   注:可能為了效能还是预设為开啟 AcceptEx()
解决:
    如果无预警的发生问题,我猜可能是 Windows Update 或是防火墙、防毒软体更新了某些网路原件,造成 Microsoft WinSock v2 API 动作不正常,这时可以把这个功能先给关掉。
   依照官方说明 , Win32DisableAcceptEx 这个功能,只有 2.0.49 版以后的才可以使用,所以我猜测 AcceptEx() 这个指令大概也是 2.0.49 才会开始支援(目前最新的就是 2.0.49)。
   关掉 AcceptEx() 的方式只要在 httpd.conf 找到   区段,加入 Win32DisableAcceptEx 就可以了。
Win32DisableAcceptEx #加入这一行
ThreadsPerChild 250
MaxRequestsPerChild 0

疑问:如果把AcceptEx()这个关掉了,是否会影响访问的速度;如果影响速度,又怎样不让速度慢下来。
问题二、
apache错误日志里面出现"connection reset by peer"
分析:
这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。
问题三、
apache错误日志里面提示default.ida或者cmd.exe不存在
分析:
这个说明Internet上面的某些机器中了蠕虫病毒比如Nimda或者Code Red。你可以略过这些错误,因为这些病毒对Apache无效。
问题四、
apache错误日志里面出现"fcntl: F_SETLKW: No record locks available
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-16972-1.html
网站维护教程更新时间:2012-08-11 08:53:05  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer