在 CentOS 上部署 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 后访问缓慢,原因通常集中在系统、网络、服务配置、代码、数据库这几个层面。下面按常见原因 → 排查方法 → 解决建议给你一个实用清单。
top
free -h
✅ 解决:
worker_processes auto;
events {
worker_connections 1024;
}
✅ 建议:
worker_processes 设为 CPU 核心数gzip on;
gzip_types text/css application/javascript;
✅ 效果:页面体积可缩小 60%+
✅ 正确示例:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
}
pm = dynamic
pm.max_children = 5 # 太小
✅ 建议:
pm.max_children = 50~100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 2s
✅ 可直接看到哪些函数慢
排查:
SHOW PROCESSLIST;
开启慢查询:
slow_query_log = 1
long_query_time = 1
✅ 建议:
SELECT *PHP 中:
gethostbyname()
mail()
✅ 解决:
✅ 解决:
getenforce
systemctl status firewalld
✅ 可临时关闭测试:
setenforce 0
ulimit -n
✅ 修改:
* soft nofile 65535
* hard nofile 65535
✅ 安装:
yum install php-opcache
top
free -h
nginx -t
php-fpm -t
SHOW PROCESSLIST;
你可以补充:
我可以直接帮你 看配置、给优化方案。