温馨提示×

怎样优化CentOS Apache

小樊
43
2026-08-18 20:58:01
栏目: 智能运维

优化 CentOS 下的 Apache(httpd)可以从 系统层面、Apache 配置、模块管理、连接与缓存、安全与日志 等多个方面入手。下面给你一套比较完整、可操作的优化方案(适用于 CentOS 7/8,Apache 2.4)。


一、系统层面优化

1. 调整系统资源限制

ulimit -n

建议至少:

ulimit -n 65535

永久生效:

vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

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

推荐:使用 event(高并发)

vi /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so

event MPM 示例配置

<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild 10000
</IfModule>

说明:

  • MaxRequestWorkers ≈ 并发处理能力
  • 不要盲目调太大,避免内存耗尽

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

查看已加载模块:

httpd -M

常见可关闭模块:

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

三、连接与请求优化

1. 开启 KeepAlive(但要限制)

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100

高并发场景建议 KeepAliveTimeout 不要超过 5 秒


2. 限制请求大小

防止大文件或攻击:

LimitRequestBody 10485760   # 10MB

四、静态资源与缓存优化

1. 启用缓存(mod_cache)

yum install mod_cache mod_cache_disk

示例:

<IfModule mod_cache_disk.c>
    CacheRoot /var/cache/httpd
    CacheEnable disk /
    CacheDefaultExpire 3600
</IfModule>

2. 静态资源过期时间(mod_expires)

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType image/jpeg "access plus 30 days"
    ExpiresByType application/javascript "access plus 7 days"
</IfModule>

五、压缩优化(gzip)

LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

六、安全与日志优化

1. 关闭目录浏览

Options -Indexes

2. 隐藏 Apache 版本信息

ServerTokens Prod
ServerSignature Off

3. 日志优化(减少磁盘 IO)

CustomLog logs/access_log combined env=!dontlog
SetEnvIf Request_URI "\.(gif|jpg|png|css|js)$" dontlog

七、PHP 环境优化(如适用)

1. 使用 PHP-FPM(推荐)

yum install php-fpm

Apache 配置:

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

2. PHP-FPM 优化

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

八、性能测试与验证

1. 配置检查

httpd -t

2. 压测工具

yum install httpd-tools
ab -n 10000 -c 100 http://localhost/

九、常见推荐组合(生产环境)

✅ CentOS + Apache 2.4
✅ MPM event
✅ PHP-FPM
✅ gzip + expires
✅ 关闭无用模块


十、是否需要我进一步帮你?

你可以告诉我:

  • ✅ CentOS 版本(7 还是 8 / Stream)
  • ✅ Apache 用途(静态站 / PHP / API)
  • ✅ 服务器配置(CPU / 内存)
  • ✅ 并发量大概多少

我可以直接给你 一份可直接使用的 httpd.conf 优化模板

0