温馨提示×

怎么优化CentOS的Apache

小樊
41
2026-08-18 21:13:03
栏目: 智能运维

优化 CentOS 上的 Apache(httpd) 通常需要从 系统层面、Apache 配置、模块、缓存、安全、日志 等多方面入手。下面给你一套实用、可落地的优化方案,适用于 CentOS 7 / 8 / Stream,无论是个人站点还是生产环境都适用。


一、系统层面优化(基础但非常重要)

1️⃣ 调整系统资源限制

编辑:

vi /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

查看:

ulimit -n

2️⃣ 调整内核参数(高并发必做)

编辑:

vi /etc/sysctl.conf

添加:

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

生效:

sysctl -p

二、Apache 主配置优化(核心)

配置文件位置:

/etc/httpd/conf/httpd.conf

1️⃣ 选择并优化 MPM(非常关键)

查看当前 MPM:

httpd -V | grep MPM

推荐:

  • 静态页面 / 轻量应用prefork
  • PHP / 动态内容prefork
  • 高并发 / 反向代理event

编辑:

vi /etc/httpd/conf.modules.d/00-mpm.conf

✅ 推荐 event MPM 配置

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

⚠️ MaxRequestWorkers 决定并发上限


2️⃣ 关闭不需要的模块(减少内存)

httpd -M

常见可关闭模块:

# 注释掉
# LoadModule autoindex_module
# LoadModule userdir_module
# LoadModule status_module

三、性能相关配置优化

1️⃣ 开启 KeepAlive(但控制时间)

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100

2️⃣ 关闭 DNS 反向解析

HostnameLookups Off

3️⃣ 调整超时时间

Timeout 30

四、静态资源 & 缓存优化

1️⃣ 启用压缩(gzip)

vi /etc/httpd/conf.d/deflate.conf
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css text/js application/javascript
</IfModule>

2️⃣ 浏览器缓存(Cache-Control)

vi /etc/httpd/conf.d/cache.conf
<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>

3️⃣ 开启文件缓存(mod_file_cache)

适合静态站点:

CacheFile /var/www/html/index.html

五、PHP 环境优化(如果用 PHP)

1️⃣ 使用 PHP-FPM(强烈推荐)

yum install php-fpm

Apache 配置:

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

2️⃣ PHP-FPM 优化

vi /etc/php-fpm.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

六、日志优化(减少磁盘 IO)

1️⃣ 关闭不需要的日志

# CustomLog combined 改为
CustomLog /var/log/httpd/access_log combined

2️⃣ 日志轮转

vi /etc/logrotate.d/httpd

七、安全 & 稳定性优化

1️⃣ 隐藏 Apache 版本

ServerTokens Prod
ServerSignature Off

2️⃣ 限制请求大小

LimitRequestBody 10485760

八、重启 & 检查

httpd -t
systemctl restart httpd

九、性能测试(验证优化效果)

使用 ab 测试

yum install httpd-tools
ab -n 1000 -c 100 http://yourdomain.com/

十、推荐组合(生产环境)

场景 推荐
高并发 Apache + PHP-FPM + event MPM
静态站 Apache + cache + gzip
反向代理 Apache + mod_proxy + event
极限性能 Apache → Nginx → PHP

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

  • ✅ CentOS 版本
  • ✅ Apache 版本
  • ✅ 是否跑 PHP / Java / 静态页面
  • ✅ 访问量级别(日 PV)

我可以 直接给你一套定制化的 Apache 配置模板

0