首页主机资讯nginx在centos上如何进行故障排查

nginx在centos上如何进行故障排查

时间2025-11-20 13:17:05发布访客分类主机资讯浏览1044
导读:Nginx 在 CentOS 上的系统化故障排查指南 一 快速定位思路 明确现象:是完全打不开、端口不通、返回 4xx/5xx,还是偶发超时。 由外到内:先看网络连通性(本机/同网段/外网),再看端口监听,最后看Nginx 进程与配置。...

Nginx 在 CentOS 上的系统化故障排查指南

一 快速定位思路

  • 明确现象:是完全打不开端口不通返回 4xx/5xx,还是偶发超时
  • 由外到内:先看网络连通性(本机/同网段/外网),再看端口监听,最后看Nginx 进程与配置
  • 由近到远:查看Nginx 错误日志访问日志,必要时结合后端应用日志抓包定位。

二 服务与端口检查

  • 检查进程与端口
    • 查看进程:ps aux | grep nginx
    • 查看监听:ss -lntp | grep -E '80|443'(或 netstat -nltp | grep -E '80|443'
  • 启动与自检
    • 启动服务:systemctl start nginx
    • 配置语法:nginx -t
  • 常见报错与处理
    • 端口被占用:bind() to 0.0.0.0:80 failed (98: Address already in use)
      • 处理:ss -lntp | grep :80 找到 PID,kill -9 < PID> systemctl start nginx
    • 重启时报错:nginx: [error] invalid PID number "" in "/run/nginx.pid"
      • 处理:nginx -c /etc/nginx/nginx.confnginx -s reload
    • 权限拒绝:bind() to 0.0.0.0:80 failed (13: Permission denied)
      • 处理:检查 SELinux 与端口策略(见第四节)

三 访问异常与日志分析

  • 日志位置与实时查看
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log
    • 实时跟踪:tail -f /var/log/nginx/error.log
  • 常见状态码定位
    • 403 Forbidden
      • 目录权限:站点目录一般 755,文件 644;如目录为 /var/www/html,执行:stat /var/www/html/ls -l /var/www/html/
      • 配置检查:/etc/nginx/nginx.conf/etc/nginx/vhosts/*.conf 中是否存在 denyindex 是否配置且文件存在
    • 404 Not Found
      • 检查 root 指向的站点目录是否正确、域名绑定是否匹配、首页文件是否存在
    • 5xx Server Error
      • 第一时间查看 error.log 的错误行与时间点,结合 access.log 的 URL、时间、返回码进行关联分析
    • 499 Client Closed Request
      • 含义:客户端在服务器返回前主动断开
      • 排查:抓包(如 tcpdump)、优化 Nginx 超时后端性能,必要时协调客户端重试策略

四 防火墙与 SELinux 策略

  • 防火墙放行
    • firewalld:firewall-cmd --zone=public --add-port=80/tcp --permanent & & firewall-cmd --reload
    • 云上实例:在控制台安全组放行 80/443 入方向
    • 传统 iptables:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  • SELinux 处理
    • 查看状态:getenforce(返回 Enforcing/Permissive/Disabled
    • 临时放行:setenforce 0(仅测试用)
    • 永久调整:编辑 /etc/selinux/configSELINUX=enforcing 改为 SELINUX=permissivedisabled 并重启
    • 端口标签(如非 80/443):semanage port -a -t http_port_t -p tcp < 端口> (需安装 policycoreutils-python-utils
    • 文件上下文(静态资源目录):chcon -Rt httpd_sys_content_t /path/to/dir
    • 审计日志分析:ausearch -m avc -ts recent | grep nginx;按需生成策略模块:audit2allow -M mynginx & & semodule -i mynginx.pp

五 性能与资源类问题

  • 打开文件句柄耗尽
    • 现象:accept() failed (24: Too many open files)
    • 排查:ulimit -n 查看进程可用句柄;检查 worker_rlimit_nofile 与系统 fs.file-max
    • 处理:提升系统/进程句柄限制并合理设置 worker_connections
  • 高并发下的稳定性
    • 关注错误日志中的 alertemerg 项,结合连接数、后端响应时间与超时配置综合优化

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: nginx在centos上如何进行故障排查
本文地址: https://pptw.com/jishu/751976.html
ifconfig在centos中如何查看路由表 如何用ifconfig设置centosIP地址

游客 回复需填写必要信息