前景提要
用 docker-compose 启动两个服务: 服务 sa ,容器 IP 地址是自动分配的 10.0.0.12 服务 sb ,容器 IP 地址是自动分配的 10.0.0.13
其他服务指定了这两个服务,比如 nginx 的 upstream upstream sa { server sa:12345; keepalive 1024; }
然后,停掉这两个服务 docker-compose stop sa sb ,然后先启动 sb,这时候 sb 会拿到地址 10.0.0.12 ,再启动 sa,这时候 sa 会拿到地址 10.0.0.13 ,跟之前翻了个个。
此时问题就出现了,Nginx 缓存了 host 与 IP 的关系,导致反向代理到了"错误"的地址
除了 nginx 之外,不知道其他的各式各样的软件会不会也会有类似的问题,就是配置的不是 IP 地址而是容器的 host 名字,依赖的容器 IP 发生了变化,一般这种问题该咋处理?????