Ubuntu 上 Apache2 访问/响应慢,通常不是“Apache 本身慢”,而是配置、资源、网络或后端出了问题。下面按最常见原因 → 排查方法 → 解决办法说明。
Ubuntu 默认可能使用:
mpm_prefork(PHP 常用,但并发差)mpm_event / mpm_worker(高并发,但 PHP 需 php-fpm)表现:
检查
apache2ctl -M | grep mpm
建议
mpm_event + php-fpmmpm_event很多人以为是 Apache 慢,其实是 PHP。
检查 PHP 执行时间
tail -f /var/log/apache2/error.log
常见 PHP 问题
file_get_contents() 访问外网✅ 建议:
php-fpmsudo phpenmod opcache
Apache 默认会做 客户端 IP 反查
表现:
解决
sudo nano /etc/apache2/apache2.conf
加入:
HostnameLookups Off
如果:
/var/www 在 NFSApache 会非常慢。
检查
iostat -x 1
df -h
sudo nano /etc/apache2/mods-enabled/mpm_event.conf
推荐:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Ubuntu 一般不是 SELinux,但:
也会导致“看起来慢”。
开启 HTTP/2
sudo a2enmod http2
# 1. Apache 状态
systemctl status apache2
# 2. 当前连接数
ss -ant | grep :80 | wc -l
# 3. CPU / 内存
top
# 4. 磁盘 IO
iostat -x 1
# 5. Apache 错误日志
tail -f /var/log/apache2/error.log
# 6. 访问日志
tail -f /var/log/apache2/access.log
| 现象 | 可能原因 |
|---|---|
| 首页慢,接口快 | PHP / DB |
| 并发一高就卡 | MPM 不对 |
| 外网慢,本地快 | DNS / 网络 |
| 第一次慢,后面快 | 反向解析 |
| HTTPS 明显慢 | SSL 配置 |
你可以补充:
我可以直接帮你给出最优 Apache 配置。