linux

LNMP服务器故障排查步骤

小樊
44
2025-08-31 07:17:26
栏目: 云计算

一、问题确认
收集用户反馈(如“网站无法访问”“页面显示502错误”)、系统告警信息(如邮件/短信通知),明确故障的具体表现、发生时间及受影响的服务范围(如仅静态页面异常、动态PHP页面报错)。这一步是后续排查的基础,需尽可能详细记录信息。

二、系统资源监控
使用top(查看CPU、内存占用排名)、htop(可视化资源监控)、df -h(磁盘空间使用情况)、iostat(磁盘I/O性能)、netstat -tuln(网络端口监听状态)等命令,检查服务器资源是否充足。重点关注:

三、日志分析
查看各组件的错误日志,定位具体故障原因:

四、网络连通性测试
使用ping(测试服务器与客户端之间的网络连通性)、traceroute(追踪网络路径,定位中间节点故障)、telnet(测试端口是否可达,如telnet localhost 80测试Nginx端口)等命令,排除网络问题。若ping不通,可能是网络线路故障;若telnet端口失败,可能是防火墙或服务未监听该端口。

五、服务进程与服务状态检查

  1. 检查服务运行状态:使用systemctl status nginxsystemctl status mysqlsystemctl status php-fpm命令,确认各服务是否处于“active (running)”状态。若服务未启动,尝试systemctl start命令启动,并观察启动日志(journalctl -xe)中的错误信息。
  2. 检查进程是否存在:使用ps aux | grep nginxps aux | grep php-fpmps aux | grep mysqld命令,确认进程是否在运行。若进程不存在,可能是服务崩溃或未启动。
  3. 检查端口占用:使用netstat -tuln | grep :80(Nginx默认端口)、netstat -tuln | grep :3306(MySQL默认端口),确认端口未被其他进程占用(如端口被占用,可使用kill -9 <PID>终止冲突进程或修改服务端口)。

六、配置文件检查
逐一检查各组件的配置文件,确保语法正确且配置合理:

七、安全性评估

  1. 检查防火墙设置:使用firewall-cmd --list-all(CentOS)或iptables -L(Ubuntu)查看防火墙规则,确认80(HTTP)、443(HTTPS)端口是否开放。若未开放,使用firewall-cmd --add-service=http --permanentfirewall-cmd --add-service=https --permanent添加规则并firewall-cmd --reload生效。
  2. 检查SELinux状态:使用getenforce命令查看SELinux是否启用(“Enforcing”表示启用)。若启用,可临时设置为permissive模式(setenforce 0)测试是否因SELinux限制导致故障(如Nginx无法读取网站文件),若故障消失,需调整SELinux策略(如chcon -R -t httpd_sys_rw_content_t /var/www/html修改文件上下文)。
  3. 检查用户权限:确认网站文件及目录的权限是否正确(如chown -R www-data:www-data /var/www/htmlchmod -R 755 /var/www/html),避免Nginx或PHP-FPM因权限不足无法访问文件。

八、问题修复与验证
根据排查结果采取相应措施:

九、总结与记录
详细记录故障现象、排查步骤、根本原因及解决方案(如“2025-08-30 14:30 网站无法访问→检查Nginx日志发现502错误→检查PHP-FPM状态发现进程崩溃→调整pm.max_children从50增加到100→重启PHP-FPM后恢复正常”)。记录的内容可作为后续类似故障的参考,提升排查效率。

0
看了该问题的人还看了