某些浏览器导致apache慢或假死问题

近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。

查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。

亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上:

AcceptFilter http none
AcceptFilter https none

重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter。

--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy

====

 

<IfModule mpm_winnt_module>
    ThreadsPerChild      500
    MaxRequestsPerChild    10000
  AcceptFilter http None
   AcceptFilter https None
</IfModule>

 

==================

1、打开httpd.conf 
2、查找
 

<span style="color:#333333">#AcceptFilter http none
#AcceptFilter https none</span>

3、修改为
 

<span style="color:#333333">AcceptFilter http none
AcceptFilter https none</span>

upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。 
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。 
4、查找
复制代码

<span style="color:#333333"><IfModule mpm_winnt_module>
    ThreadsPerChild          1920
    MaxConnectionsPerChild   100000
</IfModule></span>

5、修改为
 

<span style="color:#333333"><IfModule mpm_winnt_module>
    ThreadsPerChild          500
    MaxConnectionsPerChild   100000
</IfModule></span>

此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。 

https://www.wxm6.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值