温馨提示×

centos apache2怎样优化

小樊
44
2026-09-09 00:11:39
栏目: 智能运维

在 CentOS 上(通常叫 httpd,而不是 apache2,apache2 是 Debian/Ubuntu 的叫法),优化 Apache 主要从 配置参数、模块、系统层面、缓存、安全 几个方面入手。下面按实用程度给你一份优化清单。


一、确认 Apache 版本与 MPM

httpd -v
httpd -M | grep mpm

CentOS 常见 MPM:

  • prefork(默认,兼容好,性能一般)
  • worker
  • event(推荐,CentOS 7+ 默认支持)

切换为 event MPM(推荐)

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

启用:

LoadModule mpm_event_module modules/mod_mpm_event.so

注释掉 prefork / worker


二、核心性能参数优化(httpd.conf 或 conf.d)

1. KeepAlive 优化

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

2. MPM event 推荐配置

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

根据内存调整:

  • 2G 内存:MaxRequestWorkers 150
  • 4G+:可到 300–500

三、关闭不必要的模块(减少内存)

httpd -M

常见可关闭:

# LoadModule autoindex_module
# LoadModule userdir_module
# LoadModule status_module(生产可关)

四、启用压缩(必开)

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

五、启用缓存(大幅提升性能)

1. 浏览器缓存

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

2. 磁盘缓存(可选)

yum install mod_cache
CacheEnable disk /
CacheRoot /var/cache/httpd

六、PHP 环境优化(如用 PHP)

  • 使用 php-fpm + mod_proxy_fcgi(比 mod_php 好)
yum install php-fpm
ProxyPassMatch ^/(.*\.php)$ unix:/run/php-fpm/www.sock|fcgi://localhost/var/www/html/$1

七、系统层面优化

1. 文件描述符

ulimit -n 65535
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2. 内核参数

vim /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sysctl -p

八、日志优化(高并发重要)

CustomLog logs/access_log combined env=!dontlog

或关闭无用日志:

# CustomLog logs/access_log combined

九、安全与稳定

  • 隐藏版本:
ServerTokens Prod
ServerSignature Off
  • 禁用目录列表:
Options -Indexes

十、常用检查命令

apachectl configtest
systemctl restart httpd
systemctl status httpd

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

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 内存大小
  • 是否用 PHP / MySQL
  • 访问量级别(小站 / 高并发)

我可以直接给你一套 可直接用的配置模板。

0 踩