温馨提示×

centos怎么优化apache2性能

小樊
36
2026-09-11 21:27:11
栏目: 智能运维

CentOS 上优化 Apache(通常是 httpd,而非 apache2,apache2 是 Debian/Ubuntu 的叫法) 性能,一般从 系统层面、Apache 配置、模块、缓存、PHP/应用层 几个方面入手。下面给你一套实用优化方案(以 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
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 1000000

生效:

sysctl -p

2. 提高文件描述符限制

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

二、Apache 运行模式选择(非常重要)

推荐:event MPM(高并发最佳)

httpd -V | grep MPM

启用 event:

vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
# 注释掉 prefork / worker

重启:

systemctl restart httpd

三、Apache 核心参数优化

1. MPM 配置(/etc/httpd/conf/httpd.conf 或 conf.d)

示例(event):

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

MaxRequestWorkers 不要超过内存承受范围


四、关闭不必要模块

httpd -M

常见可关闭:

  • mod_status(生产可关)
  • mod_userdir
  • mod_lua
  • mod_proxy(不用反向代理时)

五、开启缓存与压缩

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"
    ExpiresByType application/javascript "access plus 7 days"
</IfModule>

六、静态资源与日志优化

1. 关闭不必要日志

CustomLog logs/access_log combined
# 高并发可改为
CustomLog /dev/null common

2. 静态文件由 Nginx 处理(推荐架构)

Apache 只跑动态(PHP),Nginx 做前端


七、PHP 层优化(如用 PHP)

  • 使用 PHP-FPM
  • 调整:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10

八、使用缓存系统

  • OPcache(PHP)
  • Redis / Memcached
  • Apache mod_cache(谨慎使用)

九、监控与压测

工具

ab -n 10000 -c 500 http://localhost/
top
htop
ss -ant | wc -l

十、推荐生产架构(高性能)

Nginx (静态 + 反向代理)
   ↓
Apache + PHP-FPM
   ↓
Redis / MySQL

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

  • CentOS 版本
  • Apache 版本
  • 是否用 PHP / WordPress / Java
  • 并发量和服务器配置

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

0