温馨提示×

怎么优化Ubuntu Apache

小樊
49
2026-08-01 05:11:42
栏目: 智能运维

优化 Ubuntu 上的 Apache(httpd)可以从性能、安全、资源占用、并发能力几个方面入手。下面给你一套从基础到进阶的实用优化方案,适用于大多数生产环境(WordPress、API、静态站等)。


一、系统层面优化(先做)

1. 更新系统 & Apache

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y

2. 调整系统资源限制

查看当前限制:

ulimit -n

修改打开文件数(Apache 高并发很重要):

sudo vim /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

二、Apache 核心性能优化(重点)

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

查看当前 MPM:

apache2ctl -M | grep mpm

推荐:

  • 静态内容 / 低并发prefork
  • 动态内容 / PHP / 高并发event(推荐)

启用 event MPM

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

2. 优化 MPM 配置(关键)

编辑:

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

示例(2~4G 内存服务器):

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

✅ 不要盲目调大 MaxRequestWorkers,否则容易 OOM


3. 关闭不需要的模块

apache2ctl -M

禁用无用模块(示例):

sudo a2dismod autoindex cgi status

三、网络 & 请求优化

1. 开启 KeepAlive(适度)

sudo vim /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

⚠️ 太高会占用连接,太低会增加握手


2. 开启压缩(Gzip / Brotli)

启用 Gzip

sudo a2enmod deflate

示例:

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

可选:Brotli(更高效)

sudo apt install brotli
sudo a2enmod brotli

3. 开启缓存(浏览器缓存)

sudo a2enmod expires
<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>

四、PHP 优化(如果你用 PHP)

1. 使用 PHP-FPM(比 mod_php 快)

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

2. 调整 PHP-FPM

sudo vim /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. 隐藏 Apache 版本

ServerTokens Prod
ServerSignature Off

2. 限制请求大小

LimitRequestBody 1048576

3. 防止 DoS

sudo apt install libapache2-mod-evasive

六、日志优化(减少磁盘 IO)

1. 关闭不必要日志

CustomLog /dev/null combined

或按虚拟主机控制日志级别


七、压测 & 验证

1. 测试配置

sudo apache2ctl configtest

2. 重启

sudo systemctl restart apache2

3. 压测(示例)

ab -n 1000 -c 100 http://your-domain/

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

最优组合

Ubuntu + Apache (mpm_event) + PHP-FPM + Gzip/Brotli + Opcache

九、如果你愿意,我可以进一步帮你

你可以告诉我:

  1. 服务器配置(CPU / 内存)
  2. 用途(WordPress / API / 静态站)
  3. 并发量(日 PV / 同时在线)

我可以直接给你一套定制 Apache 配置

0