自由屋推书网—热门的小说推荐平台!

你的位置: 首页 > apache

解决Windows Server下Apache假死堵塞卡死无响应方法教程

2021-12-08 13:41:47

我们在widows servrt系统中使用Apache建立自己的web站点时,有时候会出现Apache假死堵塞卡死无响应的现象,对此很多小伙伴都束手无措,不知如何操作,下面就来给大家分享一下解决Windows Server下Apache假死堵塞卡死无响应方法教程。

首先要排除一下,是否采用了页面压缩,部分服务器对压缩功能支持有限,如开启此项设置,比如HTTP压缩之gzip,等等,建议线关闭。

启用MPM模块配置文件

Apache针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。

Windows操作系统上默认的MPM模块是mpm_winnt,mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。

在对Apache的MPM模块具备一定了解后,我们就可以针对不同的MPM模块来修改Apache的最大并发连接数配置了

修改任何文件,建议做好备份。

apache\conf\httpd.conf文件中启用该配置文件

  1. # Server-pool management (MPM specific)
  2. Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")

对应的配置参数作用如下:

  1. ThreadsPerChild:每个子进程的最大并发线程数。
  2. MaxRequestsPerChild:每个子进程允许处理的请求总数。如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不限制请求总数(子进程永不结束)。
  3. 该参数建议设为非零的值,可以带来以下两个好处:
  4. 1. 可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。
  5. 2. 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意:在以上涉及到统计请求数量的参数中,对于KeepAlive的连接,只有第一个请求会被计数。

修改MPM模块配置http-mpm.conf文件中的相关配置

在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf

  1. #由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。
  2. <IfModule mpm_winnt_module>
  3. ThreadsPerChild      521 #默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
  4. MaxRequestsPerChild    3000 #推荐设置:小=10000 中或大=20000~100000
  5. </IfModule>

再考虑一个可能,(apache 2.4)

apache 2.4 IE10浏览器会导致Apache2.4版本阻塞假死,有一种说法,用IE10登录了网站,导致了apache的卡死,这里做一个防范:

在配置文件httpd.conf中添加如下两句:

  1. AcceptFilter http none
  2. AcceptFilter https none

最后重启apache。

编辑推荐

热门小说