Nacos服务公网环境登陆报密码错误问题排查

作者:小丫

一、问题现象

nacos服务内网可以正常登录,如下:

走公网代理出来之后,无法正常登录,报错"用户名密码错误"

二、排查步骤

1、链路分析

首先确认公网代理的链路:

域名--->haproxy--->nginx--->nacos

内网代理链路:

ip--->nginx--->nacos

2、查找报错接口

既然内网登录正常,证明该用户名密码正确。

首先查看现场,浏览器访问登录地址,打开f12,查看是否有报错接口,

可以看到:https://xxx/nacos/v1/auth/users/login 这个接口返回500异常状态码。

对比,可以看到,内网环境下,该接口是正常返回200状态码的。

分析是链路中哪一层返回的500异常状态码。

3、抓包分析

最简单的办法就是抓包分析。开启抓包,公网多次访问。分析抓包结果。

像这种问题,直接从链路最内层开始抓,从内层到外层的顺序。

nacos层抓包


可以看到是后端nacos服务直接返回的即是500异常状态码。看到这个结果,即外层就无需抓包了,是由于nacos返回了500,导致最终客户端拿到的状态码是500。

在外层也简单抓包看下。

haproxy层抓包

可以看到是nginx层返回给haproxy服务500状态码。

4、nacos日志分析

既然是nacos服务直接返回的500状态码,那么肯定要从nacos报错日志中入手。最终在服务器系统日志中发现服务存在跨域的报错。借助tail -f 实时观察日志,并且同时再次走公网访问验证,日志同时再次打印对应日志。由此可见,是由于后端这块儿跨域的配置有问题导致。

将日志报错反馈给开发修改代码配置解决。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

相关推荐
月夕·花晨12 天前
Gateway-断言
java·开发语言·分布式·spring cloud·微服务·nacos·sentinel
Gogo81616 天前
k8s 跟 nacos 关于服务注册以及服务发现
java·nacos·k8s
hzzzzzo01 个月前
微服务核心组件实战:Nacos 与 Ribbon 的应用
spring cloud·微服务·ribbon·nacos·架构
一包烟电脑面前做一天1 个月前
.NetCore下Ocelot + Nacos 实现负载均衡
nacos·负载均衡·.netcore·ocelot·ocelot集成nacos
一包烟电脑面前做一天1 个月前
.NetCore 接入 Nacos,实现配置中心和服务注册
nacos·.netcore·服务注册发现·配置中心
草履虫建模1 个月前
若依微服务一键部署(RuoYi-Cloud):Nacos/Redis/MySQL + Gateway + Robot 接入(踩坑与修复全记录)
redis·mysql·docker·微服务·云原生·nacos·持续部署
叁金Coder2 个月前
业务系统跳转Nacos免登录方案实践
前端·javascript·nginx·nacos
●VON2 个月前
重生之我在暑假学习微服务第七天《微服务之服务治理篇》
java·学习·微服务·云原生·nacos·架构·springcloud
linmoo19862 个月前
Spring AI 系列之二十八 - Spring AI Alibaba-基于Nacos的prompt模版
人工智能·spring·nacos·prompt·springai·springaialibaba·动态提示词
yh云想2 个月前
《微服务SpringCloud架构实践指南:从Nacos到Gateway的全面解析》
spring cloud·nacos·gateway·openfeign·filter