在 Ubuntu 上搭建 LNMP(Linux + Nginx + MySQL + PHP) 后访问缓慢,通常不是单一原因,而是多个环节叠加。下面按最常见 → 较少见的顺序给你排查思路和解决办法。
现象:浏览器转圈很久才出页面,但服务器本地很快。
原因:
gethostbyname、mail、外部 API)✅ 解决:
cat /etc/resolv.conf
推荐改成:
nameserver 8.8.8.8
nameserver 1.1.1.1
并禁用 IPv6(如果不用):
sysctl -w net.ipv6.conf.all.disable_ipv6=1
现象:静态页快,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
现象:每次访问都重新执行 PHP。
✅ 建议:
示例:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_cache_valid 200 10m;
}
现象:首页、列表页特别慢。
排查:
SHOW PROCESSLIST;
✅ 建议:
[mysqld]
skip-name-resolve
现象:写日志、session 时卡顿。
✅ 检查:
iostat -x 1
常见于:
✅ 解决:
✅ 检查:
iftop
虽然 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
你可以补充:
我可以直接给你一份针对性优化配置。