CentOS 上 Apache 很慢,通常不是“CentOS 本身慢”,而是配置、资源、网络或应用层的问题。下面按最常见原因 → 排查方法 → 解决建议来说明。
典型问题:
prefork 模式下 MaxClients 太小KeepAlive 设置不当检查:
httpd -V
看 MPM 类型(prefork / worker / event)
建议(prefork 示例):
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 2000
</IfModule>
如果是 PHP 网站:
排查:
top
看 %CPU、%MEM 是否被 php-fpm / httpd 占满
建议:
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 2s
Apache 启动或访问时做反向 DNS:
HostnameLookups On
会导致严重延迟
✅ 改成:
HostnameLookups Off
SELinux 可能导致:
检查:
getenforce
临时测试:
setenforce 0
如果变快了,说明是 SELinux 策略问题。
检查:
iptables -L -n
dmesg | grep conntrack
日志写入、数据库 IO 高
检查:
iostat -x 1
如果 %util 接近 100%,说明磁盘瓶颈。
access_log 几 GBdu -sh /var/log/httpd
✅ 开启 logrotate
# 1. 看负载
top
# 2. 看连接数
netstat -an | grep :80 | wc -l
# 3. 看 Apache 状态
apachectl status
# 4. 看错误日志
tail -f /var/log/httpd/error_log
# 5. 看 PHP 慢日志(如有)
tail -f /var/log/php-fpm/slow.log
你可以补充:
我可以直接给你针对性优化配置。