CentOS中Apache的性能调优有哪些技巧
1. 启用KeepAlive持久连接
KeepAlive技术允许客户端通过单个TCP连接发送多个请求,减少连接建立与关闭的开销。在/etc/httpd/conf/httpd.conf
中添加以下配置:KeepAlive On
(启用)、MaxKeepAliveRequests 100
(单个连接最大请求数,避免单个连接占用过久)、KeepAliveTimeout 5
(连接超时时间,单位秒)。合理设置可显著提升并发请求处理效率。
2. 调整MPM(多处理模块)参数
MPM是Apache处理并发的核心模块,需根据服务器硬件(CPU核心数、内存)和负载类型(静态/动态内容)调整。对于CentOS 7,默认使用prefork
MPM(适合兼容性场景),若为高并发场景建议切换至event
或worker
MPM(多线程模型)。
- prefork MPM示例(
/etc/httpd/conf.modules.d/00-mpm.conf
):
StartServers 5
(启动时的子进程数)、MinSpareServers 5
(最小空闲子进程数)、MaxSpareServers 10
(最大空闲子进程数)、MaxRequestWorkers 150
(最大并发请求数,避免内存耗尽)、MaxConnectionsPerChild 0
(每个子进程处理的最大请求数,0表示无限制); - event MPM示例(更适合高并发):
StartServers 2
、MinSpareThreads 25
、MaxSpareThreads 75
、ThreadLimit 64
、MaxRequestWorkers 150
、MaxConnectionsPerChild 0
。
参数需根据实际负载测试调整,避免过高导致内存溢出或过低无法应对并发。
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 application/javascript "access plus 30 days"
(JS文件缓存30天);
<
/IfModule>
。
静态文件缓存可大幅提升页面加载速度,降低服务器负载。
4. 启用Gzip压缩
使用mod_deflate
模块对文本类内容(HTML、CSS、JS、XML等)进行Gzip压缩,减小传输数据量(通常压缩率为50%-70%),提高页面加载速度。在配置文件中添加:
<
IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
(指定压缩的文件类型);
<
/IfModule>
。
注意:避免对图片、视频等二进制文件压缩(已压缩的文件再次压缩效果差)。
5. 优化内核参数
调整Linux内核参数可提升网络性能和并发处理能力。编辑/etc/sysctl.conf
文件,添加以下配置:
net.ipv4.tcp_tw_reuse = 1
(允许重用TIME_WAIT状态的连接,减少TIME_WAIT连接数);net.ipv4.tcp_tw_recycle = 1
(快速回收TIME_WAIT连接,适用于高并发场景);net.ipv4.tcp_fin_timeout = 30
(TIME_WAIT状态的超时时间,单位秒);net.ipv4.ip_local_port_range = 1024 65000
(扩大本地端口范围,避免端口耗尽);net.ipv4.tcp_max_syn_backlog = 8192
(SYN队列长度,应对大量并发连接请求)。
执行sysctl -p
使配置生效。这些参数可有效减少网络瓶颈。
6. 启用缓存代理
使用mod_cache
和mod_disk_cache
模块实现静态内容缓存,减少对后端服务器(如应用服务器、数据库)的请求次数。在配置文件中添加:
<
IfModule mod_cache.c>
CacheEnable disk /
(启用磁盘缓存,缓存根路径下的内容);
<
/IfModule>
<
IfModule mod_disk_cache.c>
CacheRoot /var/cache/apache2
(缓存目录,需提前创建并设置权限);
CacheDirLevels 2
(缓存目录层级,建议2-3层);
CacheDirLength 1
(每层目录名称长度,建议1-2位);
<
/IfModule>
。
缓存代理可显著降低后端服务器压力,提升响应速度。
7. 禁用不必要的模块与服务
禁用未使用的Apache模块(如mod_cgi
、mod_status
)和系统服务(如postfix
、firewalld
(若不需要邮件服务或防火墙管理)),减少系统资源占用和潜在攻击面。例如,在配置文件中注释掉不必要的模块加载行:
# LoadModule cgi_module modules/mod_cgi.so
# Include conf/extra/httpd-info.conf
(禁用状态页面)。
禁用前需确认模块是否真的不需要,避免影响功能。
8. 调整访问日志策略
默认情况下,Apache会记录详细的访问日志(如IP、请求时间、URL等),占用大量磁盘空间并影响性能。可通过以下方式优化:
- 将日志级别从
info
调整为warn
(LogLevel warn
),仅记录警告和错误信息; - 使用
CustomLog
指令指定日志格式(如Common
格式),避免记录过多无关信息; - 定期归档和清理日志文件(如使用
logrotate
工具)。
日志优化可在不影响故障排查的前提下,提升服务器性能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中Apache的性能调优有哪些技巧
本文地址: https://pptw.com/jishu/717484.html