为什么始终404 Page Not Found ?

现象:系统迁移到新环境后,APP能够正常访问系统,但是微信小程序始终却始终收到404错误。
系统现状:APP / 微信小程序->公网IP->系统网关F5->系统网关->系统内部服务

排查过程:

猜测1:系统网关404错误码
排查结果:查看网关日志并未返回该错误码,而且并没有接收到小程序的请求
结论:F5全量url转发至系统网关,证明微信小程序请求未到达系统网关前的F5

猜测2:网络路径不同,其中某个网络设备转发地址不正确造成
排查过程:获取相关信息:APP及微信小程序的url及访问的公网IP是否相同
排查结果:url相同,端口相同
结论:不是由于微信小程序配置问题造成

猜想3:系统迁移,IP变化,微信小程序的容器内域名映射未更新导致。
排查过程:

  1. 小程序同事反馈微信小程序配置为域名,已在DNS中修改域名对应的IP地址,在容器内ping该域名也的确是系统迁移后的新IP。
  2. 小程序同事多次使用netstat命令查看tcp连接,发现使用的并非短连接,而是4个长链接,并且在返回404后,这4个长连接并未断开(状态为establish,且源端口未变)。怀疑这4个连接处于异常,让小程序同事查询长连接建立时间,发现连接是迁移前创建的。
  3. 小程序同事反馈迁移后没有重启该服务。
  4. 另外旧环境系统网关已下线,但是F5和k8s环境未下线,404 page not found是treafik返回的错误(当目标服务不存在则返回该错误)。
  5. 向小程序同事提议重启该服务,重启后反馈访问正常。

总结:系统迁移后,小程序未重启服务,仍然使用迁移之前创建的连接访问旧环境,但是旧环境系统网关下线导致404错误,重启后和新环境连接后则正常访问新环境。

附:查网络连接创建时间的命令:netstat -antpe

如下图第三行代表的连接的创建时间是6月18号19时34分

为什么始终404 Page Not Found ?_第1张图片

你可能感兴趣的:(运维,网络,docker,网络,系统安装)