继续创造,加快成长!这是我参加「日新计划 6 月更文挑战」的第8天,点击查看活动概况

问题描述

开发环境前后端联调的时分,客户端拜访后端服务报404过错,报错的现象其实很好判断,是ngnix转发到后端的服务报404找不到。

记载一下Ngnix 404问题排查

问题分析

在定位这Windows个过错之前,你需要对自己公司网络分运维宝nginx反向代理和自己使用布置架构十分了解才行,否架构师和程序员的区别则仍是比较难有头绪的。
比方咱们产生问题场景的网络拓扑图大约如下图:

记载一下Ngnix 404问题排查

客户端用户操作页面一个恳求主要流程
1、 后台客户端运营或许测试同学,拜访一个办理页面,比方一个列表恳求***/list
2、 打运维管理开net运维工资一般多少work可以看到,会恳求后端服务 http://***/lis架构是什么意思t ,打到ngnix上
3、 然后ngnix路由转到内部服务架构的ngnix上面,Windows
4运维工程师、 网关做一些鉴权,白名单,限流等阻拦过滤直接转发到后端使用的注册中心,调用后端服务

Ngnix 404问题排查步骤

1、直接架构师工资本地ping域名, ping main-app.***.com, 看下对应ngnix的地址,联络运维同学查看日志,看 nginx 恳求的 access.log

[06/Jun/2022:13:36:31 +0800] POST /opgw/deliver/api/demand/list HTTP/1.1 404 158 http://main-app.dev.***.com/DELIEVER/demand/list Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36 10.1.60.208 0.006 0.006"x_forwarded": "-"

2、 查看域名指定的 upstream 拜访测试的 server 端口号是否正确

恳求的整个进程,域名的 upstrea运维工程师m 装备的是一台 Nginx 服务器,页面客户端的恳求拜访打到nginx服务器上,然后转发的网关的服务上面。

记载一下Ngnix 404问题排查

netstat -anp | grep nginx 查看监听的端口号,由于我装备后端服务的端口号默认便是80所以这个也没有问题。

记载一下Ngnix 404问题排查

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

也便是上面图中ngnix转到到网关运维为什么没人干的服务, 10.10.195.187:8501 这个服务,咱们可以直接在网页直接拜访这个服务,不需要走ngnix转发,直接拜访,果然也是报404过错。

最终确认测试抑郁症的20道题,是由于后端同学服务的版本号发错了,导致部分服务不是最新代码,报的404过错。