温馨提示×

如何优化Ubuntu的Apache

小樊
43
2026-07-17 18:52:20
栏目: 智能运维

优化 Ubuntu 上的 Apache(通常指 Apache2)可以从性能、安全、资源占用、并发能力几个方面入手。下面给你一套实用且可落地的优化指南,适合生产环境。


一、基础检查与准备

1. 确认 Apache 版本

apache2 -v

2. 查看当前 MPM(多处理模块)

apache2ctl -M | grep mpm

常见:

  • prefork(老、稳定,但性能一般)
  • worker(线程)
  • event(推荐 ✅,高并发)

二、选择并优化 MPM(最重要)

推荐:使用 event MPM

1. 启用 event MPM

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

2. 配置 MPM

编辑:

sudo nano /etc/apache2/mods-available/mpm_event.conf

示例(2–4 核服务器):

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

✅ 说明:

  • MaxRequestWorkers = 最大并发连接数
  • ThreadsPerChild × MaxRequestWorkers ≈ 并发能力

三、KeepAlive 优化(减少连接开销)

编辑:

sudo nano /etc/apache2/apache2.conf

推荐配置:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3

✅ 说明:

  • KeepAliveTimeout 不要太大(1–5 秒)
  • 高并发站点建议关闭 KeepAlive(静态资源除外)

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

查看已加载模块:

apache2ctl -M

禁用无用模块(示例):

sudo a2dismod autoindex cgi status
sudo systemctl restart apache2

常见可禁用:

  • autoindex
  • cgi
  • include
  • userdir

五、静态资源优化

1. 启用缓存

sudo a2enmod expires
sudo a2enmod headers

配置示例:

<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. 启用压缩(Gzip)

sudo a2enmod deflate
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

六、PHP 优化(如使用 PHP)

1. 使用 PHP-FPM(不要用 mod_php)

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.x-fpm
sudo systemctl restart apache2

2. PHP-FPM 配置

sudo nano /etc/php/8.x/fpm/pool.d/www.conf

推荐:

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

七、系统层面优化

1. 文件描述符限制

ulimit -n

建议 ≥ 65535

编辑:

sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2. 禁用 Apache 的 .htaccess(提升性能)

在虚拟主机中:

<Directory /var/www/html>
    AllowOverride None
</Directory>

八、安全 & 日志优化

1. 关闭目录列表

Options -Indexes

2. 日志不要记录过多

CustomLog /var/log/apache2/access.log combined env=!dontlog

九、压测与验证

压测工具

sudo apt install apache2-utils
ab -n 1000 -c 50 http://your-site.com/

十、常见推荐组合(结论)

场景 推荐
高并发 Apache + mpm_event + PHP-FPM
WordPress Apache + PHP-FPM + Redis
API 服务 Nginx 或 Apache + event
小内存服务器 减少 MaxRequestWorkers

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

  • 服务器配置(CPU / 内存)
  • 主要用途(WordPress / API / 静态站)
  • Apache 当前配置

我可以给你一份定制的 Apache 优化配置文件

0