apche prefork配置及ServerLimit设置无效问题

场景:为图省事,网站搭建用的宝塔环境一键安装。
网站运行时并发量猛增,httpd进程数到了800就上不去了,访问出现504错误。
解决方法:
apache三种工作模式这里具体不说了,提一句2.4版本的怎么查看
进入apache的bin目录执行

./httpd -V

里面有一句

Server MPM:     prefork

所以工作模式是prefork,对应配置文件在/conf/extra/httpd-mpm.conf
这里给一个配置仅供参考:


    StartServers 10
    MinSpareServers 10
    MaxSpareServers 20
    ServerLimit 2200
    MaxRequestWorkers 2000
    MaxConnectionsPerChild 10000

设置完成后,保存文件
这里有几点需要注意:
1、apache2.3.13以前的版本MaxRequestWorkers被称为MaxClients
2、要使文件生效必须先停止再启动apache,不能restart
3、ServerLimit必须在MaxRequestWorkers前面,且大于(等于?)MaxRequestWorkers
4、最坑的一点,如果无论你怎么设置ServerLimit、无论你怎么重启,apache都提示:
AH00180: WARNING: MaxRequestWorkers of 2000 exceeds ServerLimit value of 800 servers, decreasing MaxRequestWorker...
解决办法:
打开httpd.conf,在最后一行还有个ServerLimit等着你:)

你可能感兴趣的:(apche prefork配置及ServerLimit设置无效问题)