ELB动态地向上和向下扩展,因此ELB可以在不同时间解析为不同的IP集合。 Nginx缓存上游目标的IP,因此不需要一次又一次地解析主机名。但是当上游ELB的IP发生变化时(即一些旧的IP不再是ELB的一部分),我们会遇到问题,因为Nginx继续将流量转发到旧IP,后者不再附加任何目标。因此,该IP(VM或其他)抛出502或坏网关,并且Nginx也向客户端返回相同的502状态。我们可能会遇到这个问题,因为Nginx没有尊重dns记录的TTL。
有没有人遇到类似的问题,如果有,那么他们尝试了什么修复。
答案 0 :(得分:2)
这是许多其他客户的已知问题。这可以通过使Nginx的高速缓存无效来查看上游ELB的IP是否发生变化来解决。我们可以在Nginx中使用resolver指令。 请参阅 - https://gc-taylor.com/blog/2011/11/10/nginx-aws-elb-name-resolution-resolvers,https://distinctplace.com/2017/04/19/nginx-resolver-explained/