对于不同域名之间浏览器Cache处理方式的小探究

记一次RabbitMQ的排查处理

Posted by Haiming on December 5, 2019

今天遇到了一个很有趣的问题,是这样的:

在 develop 环境和 staging 环境上,有两套版本不同的 RabbitMQ,均需要通过跳板机进行端口映射再使用。 但是在 staging 环境上是可以用 127.0.0.1localhost 登录的,在 develop 环境上面就只可以用 localhost 登录。

目标:在两个环境之下都可以使用 127.0.0.1localhost 登录。

下面是排查过程的记录:

  • 首先考虑是不是本地的 host 映射关系有错,在查看 /etc/hosts 之后,发现映射关系是没有问题的,localhost 对应的就是 127.0.0.1
  • 那么也肯定不是跳板机的问题,因为映射之后都是 127.0.0.1: 15672 映射到跳板机的同一个端口,从这里开始没有任何区别,因此不排查从跳板机之后的过程。
  • 从跳板机往前排查,那么就想到是不是应该使用不同浏览器尝试
  • 尝试使用safari,发现 127.0.0.1localhost 都可以使用。初步判定是 chrome 问题
  • 经过排查之后发现,是因为chrome之中的cookie管理是通过域名的,在 chrome 之中, localhost 和 127.0.0.1 的cookie是不同的,然而不同版本之间的 RabbitMQ 的 cache 是冲突的,因此会报错。之前我一直使用127.0.0.1 , 所以在这个页面会报错,但是在localhost的时候就会因为从未使用过,因此没有 cache 的冲突问题,所以不会报错。