centos lnmp故障排查技巧有哪些
导读:CentOS LNMP故障排查技巧汇总 1. 确认故障现象 收集用户反馈(如网站无法访问、报错页面)及系统/应用日志(如Nginx、MySQL的错误日志),明确故障类型(如502错误、数据库连接失败),这是排查的基础方向。 2. 检查服务运...
CentOS LNMP故障排查技巧汇总
1. 确认故障现象
收集用户反馈(如网站无法访问、报错页面)及系统/应用日志(如Nginx、MySQL的错误日志),明确故障类型(如502错误、数据库连接失败),这是排查的基础方向。
2. 检查服务运行状态
使用systemctl status nginx
、systemctl status mysql
(或mariadb
)、systemctl status php-fpm
命令,确认各组件是否处于active (running)
状态。若服务未启动,尝试systemctl restart
并查看日志定位失败原因。
3. 查看错误日志
- Nginx:主要查看
/var/log/nginx/error.log
(默认路径),重点关注连接PHP-FPM失败、静态文件权限等问题; - PHP-FPM:查看
/var/log/php-fpm/error.log
或/var/log/php7-fpm.log
(版本依赖),定位PHP代码语法错误、数据库连接失败等; - MySQL:查看
/var/log/mysql/error.log
或/var/log/mariadb/error.log
,排查数据库启动失败、查询超报错等。
日志是故障排查的“黄金线索”,需优先分析最新错误信息。
4. 检查系统资源使用
使用top
(实时进程)、df -h
(磁盘空间)、free -m
(内存使用)、iostat
(磁盘IO)等命令,确认系统是否有资源瓶颈(如内存耗尽导致进程被杀、磁盘空间满导致服务无法写入)。
5. 验证配置文件语法
- Nginx:运行
nginx -t
检查配置文件(/etc/nginx/nginx.conf
及站点配置)语法,若有错误需修复后reload
(systemctl reload nginx
); - PHP-FPM:检查
/etc/php/版本号/fpm/php.ini
(主配置)及pool.d/www.conf
(进程池配置),确认listen
地址、pm.max_children
等参数是否合理; - MySQL:检查
/etc/mysql/my.cnf
(或mariadb.conf.d/50-server.cnf
),确认端口、字符集、innodb_buffer_pool_size等参数是否正确。
6. 排查网络与端口问题
- 使用
ping
命令检查服务器网络连通性(如ping 8.8.8.8
); - 使用
netstat -tulnp | grep ':80'
(或ss -tulnp
)检查Nginx是否监听80/443端口; - 使用
telnet IP端口
(如telnet localhost 3306
)测试MySQL端口是否可达,排除防火墙/SELinux拦截。
7. 处理常见错误场景
- 502 Bad Gateway:最常见原因是Nginx无法连接PHP-FPM。需检查:
- PHP-FPM服务是否运行;
- Nginx配置中的
fastcgi_pass
是否指向PHP-FPM的正确监听地址(如unix:/run/php-fpm/www.sock
或127.0.0.1:9000
); /var/run/php-fpm
目录权限(需让Nginx用户(如nginx
)可访问)。
- 数据库连接失败:检查:
- MySQL服务是否启动;
- PHP代码中的数据库用户名、密码是否正确;
- MySQL用户权限(
GRANT
语句是否授权); - 防火墙是否允许3306端口(
firewall-cmd --add-port=3306/tcp --permanent
后reload
)。
- 静态文件无法访问:检查:
- Nginx配置中的
root
路径是否指向正确的网站目录(如/var/www/html
); - 文件权限(
chown -R nginx:nginx /var/www/html
,确保Nginx用户有读取权限); - SELinux是否阻止访问(
getenforce
若为Enforcing
,可临时设为Permissive
测试,或用chcon -R -t httpd_sys_content_t /var/www/html
修改上下文)。
- Nginx配置中的
8. 调整安全策略
- 防火墙:使用
firewall-cmd --list-all
查看规则,确保允许HTTP(80)、HTTPS(443)流量,添加后reload
; - SELinux:若处于
Enforcing
模式,可临时设为Permissive
(setenforce 0
)排查是否为SELinux导致的问题,确认后修改/etc/selinux/config
永久生效(SELINUX=permissive
)。
9. 使用调试工具
- strace:跟踪进程系统调用(如
strace -p PHP_FPM_PID
),查看PHP-FPM卡死或报错的具体原因; - curl/wget:命令行测试网站访问(如
curl -I http://localhost
),快速验证服务是否响应; - ELK/Splunk:集中分析日志(如Nginx访问日志
/var/log/nginx/access.log
),识别高频错误或异常请求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lnmp故障排查技巧有哪些
本文地址: https://pptw.com/jishu/732135.html