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是看是否能访问到你的服务。

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

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值