温馨提示×

CentOS Apache如何优化响应速度

小樊
34
2025-12-01 18:14:34
栏目: 智能运维

CentOS 上 Apache 响应速度优化实操指南

一 基础连接与压缩缓存

  • 启用持久连接 KeepAlive,复用 TCP 连接,减少握手开销:
    • 配置示例:KeepAlive On;MaxKeepAliveRequests 100;KeepAliveTimeout 5(单位:秒)。
  • 启用 Gzip 压缩,降低传输体积:
    • 模块:mod_deflate
    • 配置示例:对 text/html、text/plain、text/xml、text/css、application/javascript 启用压缩。
  • 配置浏览器缓存,减少重复请求:
    • 模块:mod_expires
    • 配置示例:
      • ExpiresActive On
      • ExpiresByType text/css “access plus 30 days
      • ExpiresByType image/jpeg “access plus 1 year
      • ExpiresByType image/png “access plus 1 year
      • ExpiresByType image/gif “access plus 1 year
      • ExpiresByType application/javascript “access plus 30 days
  • 精简与降级日志开销(在可接受的运维需求下):
    • LogLevel warn,必要时改用更简的日志格式,降低磁盘 I/O。

二 并发模型与关键参数

  • 选择合适的 MPM(多处理模块)
    • prefork:基于进程,适合使用 mod_php 等阻塞式模块,稳定但内存占用高。
    • worker/event:基于线程/事件,高并发下资源利用更优,适合现代动态站点与反向代理场景。
  • 调整 MPM 关键参数(示例为常见起点,需结合实际压测微调):
    • prefork(示例起点):
      • StartServers 5
      • MinSpareServers 5
      • MaxSpareServers 10
      • MaxRequestWorkers 150
      • MaxConnectionsPerChild 0
    • worker(示例起点):
      • StartServers 5
      • MinSpareThreads 5
      • MaxSpareThreads 10
      • MaxRequestWorkers 250
      • MaxConnectionsPerChild 0
  • 启用 HTTP/2(需 mod_http2,通常要求启用 SSL/TLS):
    • 作用:多路复用、头部压缩、请求优先级,显著提升页面并发加载体验。
  • 反向代理/动态内容可启用 缓存代理(mod_cache/mod_disk_cache):
    • 作用:缓存后端响应,降低后端压力与响应时间。

三 系统与网络层优化

  • 提升文件描述符与连接队列上限:
    • 建议将进程可打开文件数提升至高位(如 fs.file-max ≥ 6815744),并相应提高进程级 LimitNOFILE(如 65535),以支持更高并发连接。
  • 优化 TCP 栈参数(/etc/sysctl.conf,执行 sysctl -p 生效):
    • net.ipv4.tcp_fin_timeout 30
    • net.ipv4.tcp_keepalive_time 1200
    • net.ipv4.tcp_tw_reuse 1
    • net.ipv4.tcp_tw_recycle 1(在部分内核/云环境中可能不推荐或无效,需谨慎评估)
    • net.ipv4.ip_local_port_range 1024 65000
    • net.ipv4.tcp_max_syn_backlog 8192
    • net.ipv4.tcp_max_tw_buckets 5000
    • net.core.somaxconn 65535
    • net.core.netdev_max_backlog 30000
  • 文件系统与挂载优化:
    • 使用 noatime 挂载选项,减少访问时间元数据写入,降低磁盘 I/O。

四 验证与上线流程

  • 基线压测与 A/B 验证:
    • 使用 ApacheBench(ab) 或 wrk 等工具在变更前后进行压测,关注 RPS、P95/P99 延迟、错误率 等关键指标,逐步调优参数。
  • 渐进式变更与回滚预案:
    • 每次仅变更少量参数,变更后先灰度/低峰时段验证,出现异常及时回滚。
  • 监控与告警:
    • 持续观察 CPU、内存、连接数、磁盘 I/O、带宽Apache 状态,结合日志分析定位瓶颈。

五 安全与模块管理建议

  • 精简模块与隐藏版本信息:
    • 禁用不必要的模块,减少攻击面与内存占用;设置 ServerTokens ProdServerSignature Off,降低信息泄露风险。
  • 保持软件更新:
    • 定期更新 Apache 及其模块至稳定版本,修复已知漏洞与性能问题。

0