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

小丫2年前技术文章2756

问题现象

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

image.png


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

image.png

排查步骤

链路分析

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

域名—>haproxy—>nginx—>nacos

内网代理链路:

ip—>nginx—>nacos

查找报错接口

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

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

image.png

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

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

image.png

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

抓包分析

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

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

nacos层抓包


image.png


image.png

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

在外层也简单抓包看下。

haproxy层抓包

image.png

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

nacos日志分析

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

image.png

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


相关文章

Python 并发编程 Futures

Python 并发编程 Futures

说明编程中如果能合理利用编程语言的并发编程技巧,都可以极大提升程序的性能。在 Python 3.2 版本为用户提供了一个标准库 concurrent.futures 可以实现进程池 和 线程池,本篇文...

MySQL优化器特性(四)表关联之BNL(Block Nested Loop)和Hash Join

MySQL优化器特性(四)表关联之BNL(Block Nested Loop)和Hash Join

什么是BNLMySQL表关联时,如果关联条件上没有合适的索引,则join时,对于驱动表的每一条记录,都需要全表扫描被驱动表。如果驱动表有多条数据,则需要多次全表扫描被驱动表,查询性能很差。对于这种情况...

Wireshark工具使用

Wireshark工具使用

一、介绍wireshark是一款免费、开源的网络抓包工具。项目地址如下:https://github.com/wireshark/wireshark应用如下:1. 网络管理员会使用wireshark来...

Centos7 升级内核

1、查看当前内核版本$ uname -rsLinux 3.10.0-1160.45.1.el7.x86_642、安装 ELRepo# 载入公钥$ rpm --import https://www.el...

MySQL运维实战(2.4) SSL认证在MySQL中的应用

MySQL支持使用tls进行通信。tls主要有几个作用对客户端、服务端之间的通信数据进行加密。包括客户端发往服务端的SQL,服务端返回给客户端的数据。客户端可以验证服务端的身份。服务端也可以验证客户端...

Prometheus结合VictoriaMetrics:更高效、稳定的多集群监控方案

在Prometheus的架构中,其核心组件包括Prometheus Server、Exporters、Alertmanager等,它采用基于拉的模型收集指标数据,并存储在本地TSDB中,支持通过Pro...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。