温馨提示×

为什么ubuntu apache访问慢

小樊
42
2026-10-11 01:25:37
栏目: 智能运维

Ubuntu 上 Apache 访问慢,通常不是“Apache 本身慢”,而是某一项被卡住了。下面按最常见 → 较少见给你一个排查清单,基本能覆盖 90% 的情况。


一、最常见原因(先查这些)

1️⃣ DNS 反向解析(非常常见)

Apache 默认会尝试对客户端 IP 做 反向 DNS 解析,如果 DNS 不通,就会卡几秒。

✅ 解决:

sudo nano /etc/apache2/apache2.conf

加入或确认:

HostnameLookups Off

然后:

sudo systemctl restart apache2

2️⃣ 开启了 .htaccess(AllowOverride All)

Apache 会在每一级目录都去读 .htaccess,非常慢。

✅ 检查:

grep -R AllowOverride /etc/apache2/

✅ 建议(生产环境):

AllowOverride None

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

不是 Apache 慢,是 PHP 慢。

排查:

top

看 php-fpm 或 apache2 是否 CPU 100%

常见原因:

  • 数据库慢查询
  • 外部 API 超时
  • file_get_contents(http://...)
  • 死循环 / 大量日志

✅ 建议:

  • 用 PHP-FPM 替代 mod_php
  • 开启 OPcache

4️⃣ Apache MPM 模式不对

Ubuntu 默认可能是 prefork,不适合高并发。

查看:

apachectl -V | grep MPM

✅ 推荐(PHP 网站):

sudo a2dismod php*
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm

二、网络和系统层面

5️⃣ 服务器带宽或延迟问题

  • 本地访问快,外网慢 → 网络问题
  • 云服务器 → 安全组 / 防火墙限速

测试:

ping your-server-ip
curl -I http://localhost

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

iostat -x 1

如果 %util 接近 100%,说明磁盘瓶颈。


7️⃣ IPv6 导致卡顿(很常见)

Apache 监听:

Listen 80

但系统优先 IPv6,可能卡。

✅ 解决:

Listen 0.0.0.0:80

三、快速自检脚本(建议你做)

# 本地测试速度
time curl -s http://localhost/

# 看 Apache 错误
sudo tail -f /var/log/apache2/error.log

# 看访问日志
sudo tail -f /var/log/apache2/access.log

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

你可以直接告诉我:

  1. Ubuntu 版本(20.04 / 22.04 / 24.04)
  2. Apache + PHP 还是静态网站
  3. 是本机慢还是外网慢
  4. 有没有用 Docker / 云服务器
  5. error.log 里有没有报错

我可以直接帮你定位是哪一行配置或代码在拖慢。

0 踩