优化CentOS上的Apache2服务器可从配置、系统、硬件及安全等方面入手,具体如下:
启用KeepAlive
在/etc/httpd/conf/httpd.conf中设置:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
减少连接建立开销,提升并发性能。
调整MPM模块参数
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
mod_mpm_worker,再配置线程参数。静态文件缓存
使用mod_expires模块设置缓存时间:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType text/css "access plus 30 days"
</IfModule>
减少重复请求,降低服务器负载。
启用压缩
通过mod_deflate压缩文本类文件:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
减小传输数据量,提升加载速度。
禁用不必要的模块
通过注释或删除httpd.conf中的LoadModule指令,移除如mod_cgi等不需要的模块,降低资源占用。
调整内核参数
修改/etc/sysctl.conf,优化网络和内存性能:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.somaxconn = 65535
fs.file-max = 65536
执行sysctl -p使配置生效。
优化文件系统
ext4或XFS文件系统,挂载时添加noatime选项,减少磁盘I/O。增加硬件资源
限制IP访问
在配置文件中通过<Directory>或<Location>限制特定IP段访问,增强安全性。
启用SSL/TLS
使用mod_ssl模块配置HTTPS,保护数据传输安全。
监控与日志管理
top、htop等工具实时监控服务器状态。logrotate定期轮转日志,避免日志文件过大。mod_cache和mod_proxy缓存动态内容,减轻后端压力。HostnameLookups Off,减少请求延迟。注意:修改配置后需重启Apache服务(systemctl restart httpd),建议先在测试环境验证优化效果[1,2,3,4,5,6,7,8,9,10,11]。