记录一个没有更新hosts 导致的问题
背景
APP 注册时候,有的手机总是收不到验证码,有的手机却能收到。
服务架构是:
App --> backend --> msg service
<-- ... <--
查看后端服务
向服务端发送请求, 服务端调用消息服务发送验证码。
但是有的手机能收到,有的却收不到, 查 msg service 的日志,也是有的有,有的手机却查不到。
排查问题
- 首先测试 msg service, 用 curl 工具在msg 服务器上测试短信接口,发现正常返回。
- 查看 bankend 调用 msg service 的方式,发现是用域名的方式调用的
- 继续回到 msg service ,使用curl 调用域名方式的服务, 是可以访问到的
- 去所有部署 bankend 实例的机器上测试域名调用, 发现有个机器是调用不到的
- 那么,问题就出在这台机器上
查看域名解析
去域名控制台,发现是没有配置域名解析的,那么之前的服务为什么是好的呢?
有可能是用的本机 hosts 配置的, 去能访问通的服务器检查 hosts, 果然是配置好的, 不能访问的机器由于是新开的服务器, 所以就没有配置hosts. 然后就把hosts 更新了,问题就解决了。
为何会出现这个问题
新开机器部署也好多天了,服务一直正常,为何今日出现? 因为为了方便日志追踪,同一个用户落到同一个机器,使用nginx负载均衡里配置了, ip_hash;
之前是没配置 ip_hash, nginx默认轮训方式,不一定会出现问题, 今天绑定了ip访问实例,问题就出现了。