温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样优化apache性能

发布时间:2026-10-01 08:48:09 来源:亿速云 阅读:89 作者:小樊 栏目:系统运维

优化 Apache(httpd)性能可以从配置调优、模块管理、系统层面、缓存与代理、监控几个维度入手。下面按“实用优先”的方式整理。


一、基础配置优化(最重要)

1. 选择合适的 MPM(多处理模块)

Apache 性能核心是 MPM:

  • prefork(稳定但耗内存,兼容老模块)
  • worker(线程+进程,性能较好)
  • event(高并发首选,Linux 推荐)

查看当前 MPM:

httpd -V | grep MPM

推荐(Linux):

LoadModule mpm_event_module modules/mod_mpm_event.so

2. 调整 MPM 参数(示例:event)

<IfModule mpm_event_module>
    StartServers             4
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadLimit             64
    ThreadsPerChild         25
    MaxRequestWorkers       400
    MaxConnectionsPerChild  10000
</IfModule>

要点:

  • MaxRequestWorkers 不要超过内存承受能力
  • MaxConnectionsPerChild 防止内存泄漏

二、关闭不必要的模块

减少模块 = 更少内存 + 更快启动

常见可禁用:

# 示例
# mod_status(生产可关)
# mod_userdir
# mod_autoindex
# mod_negotiation

查看已加载模块:

httpd -M

三、KeepAlive 优化

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100

说明:

  • 高并发:KeepAlive 开,但超时短
  • 静态资源多:可稍微提高 MaxKeepAliveRequests

四、静态资源与缓存

1. 启用压缩(省带宽)

LoadModule deflate_module modules/mod_deflate.so

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

2. 浏览器缓存

<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>

五、使用缓存模块

1. mod_cache(页面缓存)

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so

适合:

  • 内容变化不频繁的页面
  • API 缓存

六、反向代理 + 静态分离(进阶)

Apache 不适合直接扛高并发动态请求,可:

  • Apache + Nginx(静态)
  • Apache + PHP-FPM(FastCGI)

示例(PHP-FPM):

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

七、操作系统层面优化

1. 文件描述符

ulimit -n 65535

2. 内核参数(Linux)

net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1

3. 使用 SSD + 足够内存


八、监控与压测

工具

  • ab(Apache Benchmark)
ab -n 10000 -c 100 http://localhost/
  • mod_status
  • Prometheus + Node Exporter

九、常见误区

❌ 盲目调大 MaxRequestWorkers
❌ 开太多模块
❌ KeepAliveTimeout 设太长
❌ Apache 直接处理大文件下载


如果你愿意,可以告诉我:

  • 系统(CentOS / Ubuntu / Alpine)
  • Apache 版本
  • 是否跑 PHP / Java / 反向代理
  • 并发量级

我可以直接给你一套可复制的配置文件。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手