温馨提示×

centos如何优化apache配置

小樊
46
2026-09-21 05:57:43
栏目: 智能运维

在 CentOS 上优化 Apache(httpd)配置,通常需要从系统层面、Apache 参数、模块、缓存、安全等多方面入手。下面按实用优先级给你一套常见优化方案(以 CentOS 7/8 + Apache 2.4 为例)。


一、系统层面优化(前提)

1. 调整内核参数(/etc/sysctl.conf)

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 100000

执行:

sysctl -p

2. 提高文件描述符限制

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

二、Apache 核心配置优化

1. 选择合适的 MPM(非常重要)

查看当前 MPM:

httpd -V | grep MPM

推荐:

  • 静态内容多 / 高并发 → event
  • PHP 等动态内容 → prefork(配合 php-fpm 更好)

切换 MPM(CentOS):

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

示例(event):

LoadModule mpm_event_module modules/mod_mpm_event.so

2. MPM 参数优化(以 event 为例)

/etc/httpd/conf/httpd.conf 或 extra 中:

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

说明:

  • MaxRequestWorkers 决定并发上限
  • MaxConnectionsPerChild 防止内存泄漏

三、连接与超时优化

Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

高并发场景:KeepAlive 可关闭或缩短


四、关闭无用模块(减少内存)

查看已加载模块:

httpd -M

常见可禁用:

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

五、启用缓存与压缩

1. 开启 gzip 压缩

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"
</IfModule>

六、PHP 优化(如使用 PHP)

推荐:Apache + PHP-FPM

yum install php-fpm

Apache 配置:

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

七、日志优化

减少日志量

CustomLog logs/access_log combined env=!dontlog

或关闭不必要日志:

# CustomLog off

八、安全与稳定性

ServerTokens Prod
ServerSignature Off
TraceEnable Off

九、压测与验证

ab -n 10000 -c 500 http://localhost/

观察:

  • CPU
  • 内存
  • 错误日志 /var/log/httpd/error_log

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

✅ CentOS + Apache(event) + PHP-FPM
✅ gzip + expires
✅ 系统参数调优
✅ 禁用无用模块


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

  • CentOS 版本
  • Apache 版本
  • 是否用 PHP / 什么业务(API / 网站 / 下载)

我可以给你针对性配置模板。

0 踩