温馨提示×

怎样解决ubuntu apache慢

小樊
37
2026-10-08 01:45:25
栏目: 智能运维

下面从常见原因 → 排查方法 → 对应解决措施三个层面,帮你系统性解决 Ubuntu + Apache 访问慢 的问题。


一、先确认“慢”在哪里

先分清是:

  • 服务器响应慢(Apache 处理慢)
  • 网络慢(带宽 / DNS)
  • 前端慢(浏览器加载资源多)

1️⃣ 简单测试

time curl -I http://localhost
  • 如果 localhost 也慢 → Apache 自身问题
  • 如果 localhost 快,外网慢 → 网络 / DNS

二、Apache 自身常见慢的原因与解决

✅ 1. MPM 模块配置不合理(最常见)

Ubuntu 默认可能是 mpm_prefork

查看:

apache2 -V | grep MPM

Prefork(PHP 常用)

编辑:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

示例(2G–4G 内存):

<IfModule mpm_prefork_module>
    StartServers             4
    MinSpareServers          4
    MaxSpareServers         10
    MaxRequestWorkers       50
    MaxConnectionsPerChild 200
</IfModule>

重启:

sudo systemctl restart apache2

✅ 2. KeepAlive 设置不当

编辑:

sudo nano /etc/apache2/apache2.conf

推荐:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

✅ 3. PHP 慢(如果用 PHP)

检查 PHP 版本:

php -v

建议:

  • 使用 PHP 8.1 / 8.2
  • 安装 OPcache
sudo apt install php-opcache

php.ini 中:

opcache.enable=1
opcache.memory_consumption=128

✅ 4. DNS 反向解析导致慢(非常常见)

Apache 默认会做主机名解析

修改:

sudo nano /etc/apache2/apache2.conf

改为:

HostnameLookups Off

✅ 5. 日志写入慢

如果日志在慢磁盘或权限异常:

临时测试:

sudo mv /var/log/apache2/access.log /var/log/apache2/access.log.bak
sudo touch /var/log/apache2/access.log

三、系统层面优化

✅ 6. 内存不足 / 使用 Swap

free -h

如果内存爆了:

swapon --show

可加 swap:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

✅ 7. 磁盘 IO 慢

iostat -x 1

如果是云服务器,可能是 低 IO 云盘


✅ 8. 启用 Apache 缓存

sudo a2enmod cache
sudo a2enmod cache_disk

四、进阶方案(高并发)

✅ 使用 PHP-FPM(强烈推荐)

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

比 prefork + mod_php 快很多


五、快速排查 checklist ✅

  • [ ] HostnameLookups Off
  • [ ] KeepAlive 合理
  • [ ] MPM 配置匹配内存
  • [ ] PHP OPcache 开
  • [ ] 不用 mod_php(用 fpm)
  • [ ] 服务器内存足够

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Apache / PHP 版本
  • 是 网站打开慢 还是 接口慢
  • 是否用的 WordPress / Laravel / 自建程序

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

0 踩