1. 启用KeepAlive减少连接开销
 KeepAlive允许客户端通过单个TCP连接发送多个HTTP请求,避免频繁建立/关闭连接的开销。在Apache配置文件(/etc/httpd/conf/httpd.conf)中添加以下指令:
KeepAlive On MaxKeepAliveRequests 100 # 单个连接允许的最大请求数(避免单个连接占用过多资源) KeepAliveTimeout 5 # 等待下一个请求的超时时间(秒,过短会导致频繁重建连接)  重启Apache服务使配置生效:sudo systemctl restart httpd。
2. 调整MPM(多处理模块)提升并发能力
 CentOS 7及以上版本的Apache默认使用prefork MPM(多进程模型),适合兼容性场景但并发性能有限;若网站流量较大,建议切换至event MPM(事件驱动模型,支持多线程)。编辑MPM配置文件(/etc/httpd/conf.modules.d/00-mpm.conf),禁用prefork并启用event:
# 注释掉prefork配置 # <IfModule mpm_prefork_module> # StartServers 5 # MinSpareServers 5 # MaxSpareServers 10 # MaxRequestWorkers 150 # MaxConnectionsPerChild 0 # </IfModule> # 启用event MPM(适合高并发) <IfModule mpm_event_module> StartServers 2 # 启动时的进程数 MinSpareThreads 25 # 最小空闲线程数 MaxSpareThreads 75 # 最大空闲线程数 ThreadLimit 64 # 线程数上限 ThreadsPerChild 25 # 每个子进程创建的线程数 MaxRequestWorkers 150 # 最大并发请求数(根据服务器内存调整,如1GB内存建议100-150) MaxConnectionsPerChild 0 # 每个子进程处理的请求数(0表示无限制) </IfModule>  注意:MaxRequestWorkers需根据服务器内存计算(如1GB内存约支持100-150个并发,公式:可用内存(MB)/每个进程内存占用(MB),可通过top命令查看Apache进程内存占用)。
3. 配置静态文件缓存减轻服务器负载
 通过mod_expires模块为静态资源(CSS、JS、图片等)设置浏览器缓存,减少重复请求。在配置文件中添加:
<IfModule mod_expires.c> ExpiresActive On # 启用缓存 ExpiresByType text/css "access plus 30 days" # CSS缓存30天 ExpiresByType image/jpeg "access plus 1 year" # JPEG图片缓存1年 ExpiresByType image/png "access plus 1 year" # PNG图片缓存1年 ExpiresByType image/gif "access plus 1 year" # GIF图片缓存1年 ExpiresByType application/javascript "access plus 30 days" # JS缓存30天 </IfModule>  重启Apache后,浏览器会缓存这些静态资源,后续访问直接从本地读取,降低服务器负载。
4. 启用Gzip压缩减小传输体积
 使用mod_deflate模块对文本类内容(HTML、CSS、JS、JSON等)进行Gzip压缩,减少网络传输时间(压缩率通常为50%-70%)。在配置文件中添加:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json AddOutputFilterByType DEFLATE image/svg+xml image/x-icon # 压缩SVG和图标 AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype # 压缩字体文件 DeflateCompressionLevel 9 # 压缩级别(1-9,9为最高,平衡压缩率与CPU消耗) SetOutputFilter DEFLATE # 强制启用压缩 </IfModule>  注意:避免压缩图片(如JPEG、PNG),此类文件本身已压缩,再次压缩会增加CPU负担。重启Apache后,可通过浏览器开发者工具(Network面板)查看响应头中的Content-Encoding: gzip确认压缩生效。
5. 启用HTTP/2协议提升传输效率
 HTTP/2相较于HTTP/1.1支持多路复用(一个连接并行传输多个请求)、头部压缩等功能,能显著提升页面加载速度。需先安装mod_http2模块(CentOS默认可能未安装),编辑配置文件:
# 安装mod_http2(若未安装) sudo yum install mod_http2 # 编辑配置文件 sudo vi /etc/httpd/conf/httpd.conf  添加以下指令:
LoadModule http2_module modules/mod_http2.so Protocols h2 http/1.1 # 启用HTTP/2,同时兼容HTTP/1.1  重启Apache后,浏览器会自动协商使用HTTP/2协议(可通过开发者工具的Protocol列确认)。
6. 移除不用的模块减少资源占用
 Apache默认加载的模块较多,未使用的模块会占用内存和CPU资源。编辑模块配置目录(/etc/httpd/conf.modules.d/),注释掉不需要的模块(如mod_cgi、mod_ldap等,具体根据网站需求调整):
sudo vi /etc/httpd/conf.modules.d/00-base.conf  示例(注释掉mod_cgi):
# LoadModule cgi_module modules/mod_cgi.so  保存后重启Apache,减少不必要的资源消耗。
7. 优化访问日志减少IO开销
 默认情况下,Apache会记录详细的访问日志(如logs/access_log),大量请求会导致磁盘IO瓶颈。可调整日志格式或级别,例如使用common格式(简化日志内容)或降低日志级别(warn):
# 在VirtualHost或全局配置中添加 CustomLog logs/access_log combined # 使用combined格式(比common多Referer和User-Agent) LogLevel warn # 日志级别设为warn(仅记录警告和错误,减少日志量)  注意:生产环境需平衡日志需求与性能,若需详细日志,可将日志写入内存文件系统(如tmpfs)或使用日志轮转工具(logrotate)定期归档。
8. 内核参数调优增强网络性能
 调整Linux内核参数,优化TCP连接处理能力,减少TIME_WAIT状态连接(高并发场景下易导致端口耗尽)。编辑/etc/sysctl.conf文件,添加以下配置:
net.ipv4.tcp_fin_timeout = 30 # TIME_WAIT状态的超时时间(秒,默认60,缩短可快速释放端口) net.ipv4.tcp_keepalive_time = 1200 # TCP keepalive探测间隔(秒,默认7200,缩短可快速检测死连接) net.ipv4.tcp_tw_reuse = 1 # 允许重用TIME_WAIT状态的端口(提升并发能力) net.ipv4.tcp_tw_recycle = 1 # 快速回收TIME_WAIT状态的端口(注意:NAT环境下可能导致连接失败,需谨慎使用) net.ipv4.ip_local_port_range = 1024 65000 # 本地端口范围(增大范围,支持更多并发连接) net.ipv4.tcp_max_syn_backlog = 8192 # SYN队列长度(默认1024,增大可应对高并发SYN请求) net.ipv4.tcp_max_tw_buckets = 5000 # TIME_WAIT状态的最大连接数(超过则直接删除,避免内存耗尽)  执行sudo sysctl -p使配置立即生效。