Ubuntu 上 Apache2 慢 的原因通常可以归为几类:配置问题、资源不足、模块过多、PHP/数据库瓶颈、网络或 DNS 问题。下面按常见程度逐一说明,并给出排查和优化方法。
mpm_prefork(默认)Ubuntu 默认 Apache 使用 prefork MPM,每个请求开一个进程,内存占用高,并发能力差。
表现:
解决:
# 查看当前 MPM
apache2ctl -V | grep -i mpm
# 如果是 prefork,可切换为 event(推荐)
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
如果你跑的是 PHP 网站(WordPress、Laravel 等):
memory_limit 太低或太高max_execution_time 太小推荐做法:
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
sudo systemctl restart apache2
Apache 默认启用很多模块:
apache2ctl -M
可禁用常见无用模块:
sudo a2dismod status autoindex cgi negotiation
sudo systemctl restart apache2
free -h
如果有大量 swap 使用:
iostat -x 1
如果是云服务器(低 IO 磁盘),Apache 日志、session、缓存都会变慢。
HostnameLookups 开启grep HostnameLookups /etc/apache2/apache2.conf
如果是 On,改成:
HostnameLookups Off
用浏览器 F12 → Network 看哪个请求慢。
即使 Apache 正常,MySQL 慢也会让网页慢:
sudo mysqladmin status
或开启慢查询日志。
top
ps aux | grep apache
tail -f /var/log/apache2/error.log
tail -f /var/log/apache2/access.log
curl -w "%{time_total}\n" http://localhost/
你可以告诉我:
我可以直接给你针对性配置方案。