某生产网站部署在Apache上,使用tomcat集群,偶尔网站失去响应,查看首页发现无法打开,页面假死,出现过多次,查看apache的日志,发现经常出现以下提示:

[Fri Dec  :: ] [warn] (OS )指定的网络名不再可用。  : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec :: ] [warn] (OS )指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.

研究之下,发现这和windows系统的一个特性有关:

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提供了性能改善。一些防毒软件或者其他因素导致该特性不可用,造成了apache的拒绝服务。

解决办法:

修改httpd.conf文件,增加以下内容配置:

<IfModule mpm_winnt.c>

ThreadsPerChild 

MaxRequestsPerChild  

Win32DisableAcceptEx

</IfModule>

如果还是出现以上的报错信息,则可以尝试如下配置:

1、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的
勾.

2、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。

3、然后退出Apache,再打开启动就可以了,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可。

然后重启apache后,发现已经正确的载入了配置:在日志中可以发现notice信息。

[notice] Disabled use of AcceptEx() WinSock2 API

【原创】Apache服务器500错误失去响应的问题解决的更多相关文章

  1. APACHE服务器500错误解决方法

    1.APACHE没开启rewrite模块. 解决办法:编辑apache的http.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so, ...

  2. apache的500错误是写到哪个文件里面

    apache的500错误是写到哪个文件里面

  3. 在Linux系统上查看Apache服务器的错误日志

    错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不 ...

  4. zabbix 服务器500错误,解决故障。

    ZABBIX 500错误,查看apache错误日志,index.php 32 line.写着语法错误!!! 到路径下打开/var/www/html/zabbix/index.php文件,定位32行,可 ...

  5. Fileupload控件导致500错误

    问题: 今天遇到一个问题,用Fileupload控件上传Excel文件,用一个button控件调用“FileUpload1.SaveAs”方法,点击按钮后出现服务器500错误.如下图: 解决方法: 在 ...

  6. http 500错误怎么解决方法

    出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误. 解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开 ...

  7. 给Apache加载rewrite模块后,服务器返回500错误,以及a2enmod命令

    我的机子是Ubuntu. 今天想给url做一个rewrite,让url看起来更漂亮一点.在Apache配置文件(我的是 /etc/apache/apache2.conf)文件中已经把AllOverri ...

  8. ajax 请求 服务器 响应内容过长 返回500错误的解决方法

    在web.config试试加上 <system.web.extensions> <scripting> <webServices> <jsonSerializ ...

  9. (C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误

    因为工作需要调用WebService接口,查了下资料,发现添加服务引用可以直接调用websevice 参考地址:https://www.cnblogs.com/peterpc/p/4628441.ht ...

随机推荐

  1. C语言宏定义#define用法

    #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用 ...

  2. APUE学习笔记7——进程间通信

    1 管道 管道一般是一种半双工的进程间通信方式,只能够在具有公共祖先的进程之间使用,比如一个管道由一个进程创建,然后该进程调用fork,之后父.子进程就可以使用该管道. 管道是调用pipe函数创建的. ...

  3. Ubuntu下使用crontab部署定时任务

    Ubuntu下使用crontab部署定时任务 安装cron apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/ ...

  4. php $_SERVER['PHP_SELF']安全漏洞

    REQUEST_URI 返回的是包括后面数据串的地址,如 index.php?str=1234 PHP_SELF 是 index.php ------------------------------- ...

  5. navicat连接SQL Sever数据库出现的问题

    1.navicat 连接sqlserver提示要安装 sql server native client 解决办法:在navicat安装目录下有个sqlncli_x64.msi文件,双击安装一直下一步就 ...

  6. 【codeforces 794B】Cutting Carrot

    [题目链接]:http://codeforces.com/contest/794/problem/B [题意] 给你一个等腰三角形; 它的底边为1; 高为h; 要求你把这个等腰三角形分成n份面积相等的 ...

  7. js获取当地时间并且拼接时间格式的三种方式

    js获取当地时间并且拼接时间格式,在stackoverflow上有人在问,查了资料,各种方法将时间格式改成任意自己想要的样式. 1. var date = new Date(+new Date()+8 ...

  8. Core abstraction layer for telecommunication network applications

    A new sub-system, the core abstraction layer (CAL), is introduced to the middleware layer of the mul ...

  9. Hadoop 2.2.0和HBase-0.98 安装snappy

    1.安装须要的依赖包及软件 须要安装的依赖包有: gcc.c++. autoconf.automake.libtool 须要安装的配套软件有: Java6.Maven 关于上面的依赖包,假设在ubun ...

  10. nodeJS npm grunt grunt-cli

    1.安装好nodeJS后 ,一般都会把npm也安装好的.nodeJs集成npm的,可通过在cmd 分别运行 node -v和 npm -v来查看他们的版本,假设显示可说明可继续以下的操作 2.想安装g ...