温馨提示×

ubuntu lnmp 为何访问缓慢

小樊
46
2026-10-24 14:56:58
栏目: 智能运维

在 Ubuntu 上搭建 LNMP(Linux + Nginx + MySQL + PHP) 后访问缓慢,通常不是单一原因,而是多个环节叠加。下面按最常见 → 较少见的顺序给你排查思路和解决办法。


一、最常见原因(80% 问题在这里)

1. DNS 解析慢(非常常见)

现象:浏览器转圈很久才出页面,但服务器本地很快。

原因:

  • PHP 或 Nginx 在做 DNS 查询(如 gethostbyname、mail、外部 API)
  • 服务器 DNS 配置慢

✅ 解决:

cat /etc/resolv.conf

推荐改成:

nameserver 8.8.8.8
nameserver 1.1.1.1

并禁用 IPv6(如果不用):

sysctl -w net.ipv6.conf.all.disable_ipv6=1

2. PHP-FPM 配置不合理(最常见性能问题)

现象:静态页快,PHP 页面慢。

检查:

ps aux | grep php-fpm

常见问题:

  • pm = static 但 pm.max_children 太小
  • pm = dynamic 但参数保守

✅ 推荐配置(2核4G示例):

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

重启:

systemctl restart php-fpm

3. Nginx 未开缓存 / 配置错误

现象:每次访问都重新执行 PHP。

✅ 建议:

  • 开启 FastCGI 缓存
  • 静态资源直接由 Nginx 处理

示例:

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php-fpm.sock;
    fastcgi_cache_valid 200 10m;
}

二、MySQL 相关(动态站点常见)

4. MySQL 查询慢

现象:首页、列表页特别慢。

排查:

SHOW PROCESSLIST;

✅ 建议:

  • 加索引
  • 关闭 DNS 反查:
[mysqld]
skip-name-resolve

5. 磁盘 IO 慢(云服务器常见)

现象:写日志、session 时卡顿。

✅ 检查:

iostat -x 1

常见于:

  • 低配云盘
  • session 存文件

✅ 解决:

  • session 存 Redis
  • 日志异步

三、网络 & 系统层面

6. 带宽小 / 跨境访问

  • 国内服务器访问境外慢
  • 小带宽被占满

✅ 检查:

iftop

7. 防火墙 / SELinux / UFW

虽然 Ubuntu 默认不卡,但规则错误会导致重试。

ufw status

四、快速自检清单(建议你照着做)

# 1. 本地访问是否快
curl -I localhost

# 2. PHP 是否慢
php -v

# 3. DNS 是否快
time ping google.com

# 4. PHP-FPM 状态
systemctl status php-fpm

# 5. Nginx 错误日志
tail -f /var/log/nginx/error.log

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

你可以补充:

  1. Ubuntu 版本
  2. Nginx / PHP / MySQL 版本
  3. 是 静态页慢 还是 PHP 慢
  4. 服务器配置(CPU / 内存)
  5. 是否云服务器 & 地区

我可以直接给你一份针对性优化配置。

0 踩