【原创】Apache服务器500错误失去响应的问题解决
某生产网站部署在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上的默认值。它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。
说明 | 使用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错误失去响应的问题解决的更多相关文章
- APACHE服务器500错误解决方法
1.APACHE没开启rewrite模块. 解决办法:编辑apache的http.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so, ...
- apache的500错误是写到哪个文件里面
apache的500错误是写到哪个文件里面
- 在Linux系统上查看Apache服务器的错误日志
错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不 ...
- zabbix 服务器500错误,解决故障。
ZABBIX 500错误,查看apache错误日志,index.php 32 line.写着语法错误!!! 到路径下打开/var/www/html/zabbix/index.php文件,定位32行,可 ...
- Fileupload控件导致500错误
问题: 今天遇到一个问题,用Fileupload控件上传Excel文件,用一个button控件调用“FileUpload1.SaveAs”方法,点击按钮后出现服务器500错误.如下图: 解决方法: 在 ...
- http 500错误怎么解决方法
出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误. 解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开 ...
- 给Apache加载rewrite模块后,服务器返回500错误,以及a2enmod命令
我的机子是Ubuntu. 今天想给url做一个rewrite,让url看起来更漂亮一点.在Apache配置文件(我的是 /etc/apache/apache2.conf)文件中已经把AllOverri ...
- ajax 请求 服务器 响应内容过长 返回500错误的解决方法
在web.config试试加上 <system.web.extensions> <scripting> <webServices> <jsonSerializ ...
- (C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误
因为工作需要调用WebService接口,查了下资料,发现添加服务引用可以直接调用websevice 参考地址:https://www.cnblogs.com/peterpc/p/4628441.ht ...
随机推荐
- C语言宏定义#define用法
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用 ...
- APUE学习笔记7——进程间通信
1 管道 管道一般是一种半双工的进程间通信方式,只能够在具有公共祖先的进程之间使用,比如一个管道由一个进程创建,然后该进程调用fork,之后父.子进程就可以使用该管道. 管道是调用pipe函数创建的. ...
- Ubuntu下使用crontab部署定时任务
Ubuntu下使用crontab部署定时任务 安装cron apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/ ...
- php $_SERVER['PHP_SELF']安全漏洞
REQUEST_URI 返回的是包括后面数据串的地址,如 index.php?str=1234 PHP_SELF 是 index.php ------------------------------- ...
- navicat连接SQL Sever数据库出现的问题
1.navicat 连接sqlserver提示要安装 sql server native client 解决办法:在navicat安装目录下有个sqlncli_x64.msi文件,双击安装一直下一步就 ...
- 【codeforces 794B】Cutting Carrot
[题目链接]:http://codeforces.com/contest/794/problem/B [题意] 给你一个等腰三角形; 它的底边为1; 高为h; 要求你把这个等腰三角形分成n份面积相等的 ...
- js获取当地时间并且拼接时间格式的三种方式
js获取当地时间并且拼接时间格式,在stackoverflow上有人在问,查了资料,各种方法将时间格式改成任意自己想要的样式. 1. var date = new Date(+new Date()+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 ...
- Hadoop 2.2.0和HBase-0.98 安装snappy
1.安装须要的依赖包及软件 须要安装的依赖包有: gcc.c++. autoconf.automake.libtool 须要安装的配套软件有: Java6.Maven 关于上面的依赖包,假设在ubun ...
- nodeJS npm grunt grunt-cli
1.安装好nodeJS后 ,一般都会把npm也安装好的.nodeJs集成npm的,可通过在cmd 分别运行 node -v和 npm -v来查看他们的版本,假设显示可说明可继续以下的操作 2.想安装g ...