在 Ubuntu 上搭建 LNMP(Linux + Nginx + MySQL + PHP) 后访问缓慢,原因通常集中在配置、资源、网络、代码四个方面。下面按最常见 → 较少见的顺序给你系统排查思路。
表现:第一次访问慢,后续快;或 PHP 请求慢。
gethostbyname()localhost 而不是 127.0.0.1✅ MySQL 配置
# my.cnf
[mysqld]
skip-name-resolve
并连接用:
127.0.0.1 而不是 localhost
✅ 检查 DNS
cat /etc/resolv.conf
推荐:
nameserver 8.8.8.8
nameserver 1.1.1.1
表现:并发稍高就卡死
ps aux | grep php-fpm
pm = dynamic
pm.max_children = 5 # 太小
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
表现:静态资源也慢
sendfilegzip.htaccess(PHP 框架)sendfile on;
tcp_nopush on;
gzip on;
gzip_types text/css application/javascript;
SHOW PROCESSLIST;
开启慢日志:
slow_query_log = 1
long_query_time = 1
✅ 加索引
✅ 避免 SELECT *
free -h
低内存建议:
innodb_buffer_pool_size = 256M
iostat -x 1
解决:
sysctl vm.swappiness=10
✅ 开启:
如:
✅ 改成异步队列
# 1. 系统资源
top
free -h
df -h
# 2. Web 服务
nginx -t
systemctl status php8.1-fpm
# 3. 数据库
mysqladmin status
# 4. 网络
ping 8.8.8.8
curl -I http://localhost
你可以补充:
我可以给你针对性优化配置。