温馨提示×

为何ubuntu apache2慢

小樊
40
2026-09-29 08:38:36
栏目: 智能运维

Ubuntu 上 Apache2 访问慢 / 响应慢 是常见问题,原因通常不在“Apache 本身”,而在系统配置或环境。下面按最常见 → 较少见给你一个排查清单。


一、最常见原因(90% 情况)

1️⃣ DNS 反向解析导致卡顿(非常常见)

Apache 默认会尝试对客户端 IP 做 反向 DNS 解析。

✅ 解决:

sudo nano /etc/apache2/apache2.conf

添加或确认:

HostnameLookups Off

重启:

sudo systemctl restart apache2

2️⃣ 没有禁用 .htaccess(AllowOverride All)

如果网站目录启用了 .htaccess:

  • 每个请求都会扫描目录
  • 在 HDD / 大目录下会非常慢

✅ 解决(生产环境推荐):

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

3️⃣ PHP 执行慢(如果是 PHP 网站)

不是 Apache 慢,是 PHP 慢。

检查:

php -v

确认:

  • 是否启用 OPcache
  • 是否使用 php-fpm(推荐)

✅ 推荐方式:

sudo apt install php-fpm

Apache 使用 proxy_fcgi 而不是 mod_php


4️⃣ MPM 模式不对(prefork / event)

Ubuntu 默认可能是 prefork,在高并发下很慢。

查看:

apache2ctl -M | grep mpm

✅ 推荐(PHP-FPM):

  • mpm_event

切换:

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

二、系统 / 网络层原因

5️⃣ 服务器内存不足 / 频繁 Swap

free -h

如果 Swap 在使用 → 慢

解决:

  • 增加内存
  • 减少 Apache 进程数

6️⃣ 磁盘 IO 慢(特别是云服务器)

iostat -x 1

如果 %util 接近 100%,是磁盘问题。


7️⃣ IPv6 导致连接等待

Apache 监听了 IPv6,但客户端走 IPv4 慢。

检查:

sudo netstat -tulnp | grep apache

可临时禁用 IPv6 测试。


三、Apache 配置层面

8️⃣ KeepAlive 设置不合理

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

不要设太大。


9️⃣ 模块加载过多

禁用不用的模块:

sudo a2dismod status
sudo a2dismod autoindex

四、快速自测方法(很重要)

看是不是 Apache 慢

time curl http://localhost
  • 本地都慢 → Apache / PHP
  • 外网慢本地快 → 网络

五、如果你愿意,我可以更精准帮你

你可以补充:

  1. Ubuntu 版本
  2. Apache 版本
  3. 是否 PHP / WordPress / Laravel
  4. 是 首次连接慢 还是 整体慢
  5. 云服务器还是本地

我可以直接给你一套「最优配置」。

0 踩