在 CentOS 上使用 Apache(httpd) 进行优化,通常从 系统层面、Apache 配置、模块优化、缓存与静态资源、安全与监控 几个方面入手。下面给你一套实用可落地的优化方案(适用于 CentOS 7/8、Apache 2.4)。
getenforce
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
ulimit -n 65535
永久生效:
cat >> /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
EOF
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
sysctl -p
配置文件位置:
/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/*.confApache 2.4 推荐 event(高并发)
httpd -V | grep MPM
启用 event(CentOS 默认是 prefork):
vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
# 注释掉 prefork / worker
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 64
MaxSpareThreads 128
ThreadsPerChild 64
MaxRequestWorkers 512
MaxConnectionsPerChild 10000
</IfModule>
说明:
- MaxRequestWorkers ≈ 并发连接数
- MaxConnectionsPerChild 防止内存泄漏
KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100
Timeout 30
高并发场景:KeepAliveTimeout 不要太大(2–5 秒)
vim /etc/httpd/conf.modules.d/00-base.conf
常见可禁用:
# LoadModule autoindex_module modules/mod_autoindex.so
vim /etc/httpd/conf.d/deflate.conf
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
vim /etc/httpd/conf.d/cache.conf
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
yum install php-fpm -y
systemctl enable php-fpm
Apache 使用 proxy_fcgi:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
✅ 比 mod_php 性能更好、更稳定
CustomLog logs/access_log combined env=!dontlog
SetEnvIf Request_URI "\.(jpg|css|js|png)$" dontlog
TransferLog "|/usr/sbin/rotatelogs /var/log/httpd/access_%Y%m%d.log 86400"
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
systemctl status httpd
apachectl -t
yum install httpd-tools -y
ab -n 10000 -c 500 http://localhost/
用户 → Nginx(反向代理/静态)
↓
Apache + PHP-FPM
↓
MySQL / Redis
Nginx 处理静态 + HTTPS,Apache 专注动态
✅ 使用 event MPM
✅ 启用 PHP-FPM
✅ 开启 gzip + 缓存
✅ 精简模块
✅ 调整超时与并发
✅ 系统参数优化
如果你能提供:
我可以给你 针对性配置模板。