Nginx 404 排查过程

某天突然访问自己的测试域名,然后 404 了,然后就像无头苍蝇一样,四处尝试,看 nginx 的配置,折腾一番,无果。最后在同事的帮助下,找到了一些端倪。虽然这几个步骤很简单,但却是整个解决问题的思路。

1、看 nginx 请求的 access.log

查看 nginx 配置的日志,确认请求已经到达了 nginx。
nginx 日志配置指令:

access_log /data/logs/nginx/api.access.log;
error_log  /data/logs/nginx/api.error.log;

2、检查域名指定的 upstream 访问的 server 端口号是否正确

upstream my_service {
    
    
    # 192.168.1.10 Nginx 服务器,8899 是 Nginx 监听的端口号
    server 192.168.1.10:8899 weight=1;
}

我的域名的 upstream 配置的是一台 Nginx 服务器,请求都打到那台 Nginx 服务器上,然后转发到后端 server。有一天我访问的时候突然就出现 404 了,我看 Nginx 服务器也是启动得好好的,后端服务也是正常启动的。
然后我在 Nginx服务器 上查看它监听的端口号: netstat -anp | grep nginx
在这里插入图片描述
发现我域名配置的 upstream 的 server 端口号「8899」在上面这个图中没有,有可能是谁动了我的配置文件,最后改了域名指向的 upstream 的 server 端口号,然后 404 就消失了。

3、检查后端服务是否可达

如果已经请求到 nginx,那就看是否请求到了后端服务,
先确认后端服务是否启动起来,这个看后端日志应该能发现点什么,并通过 curl 127.0.0.1:8080是看是否能访问到你的服务。

每个人遇到的这个问题的原因可能不是相同的,但只要心中有一个大致的解决问题的思路方向,就不会深陷其中而无法看清问题的本质。

猜你喜欢

转载自blog.csdn.net/jiaobuchong/article/details/104847020
今日推荐