Docker AWS服务发现、nginx和节点问题
我在AWS ECS fargate中运行2个服务。一种是在应用程序负载平衡器后面运行nginx容器。另一个是运行node.js应用程序。节点应用程序正在运行,服务发现和Nginx容器代理到节点应用程序容器的“服务发现端点” 我的问题是: 将节点应用程序容器从1扩展到2后。Nginx无法将请求发送到新生成的容器。它只将请求发送到旧容器。重新启动/重新部署nginx容器后,它能够将请求发送到新容器Docker AWS服务发现、nginx和节点问题,docker,amazon-ecs,service-discovery,aws-fargate,Docker,Amazon Ecs,Service Discovery,Aws Fargate,我在AWS ECS fargate中运行2个服务。一种是在应用程序负载平衡器后面运行nginx容器。另一个是运行node.js应用程序。节点应用程序正在运行,服务发现和Nginx容器代理到节点应用程序容器的“服务发现端点” 我的问题是: 将节点应用程序容器从1扩展到2后。Nginx无法将请求发送到新生成的容器。它只将请求发送到旧容器。重新启动/重新部署nginx容器后,它能够将请求发送到新容器 我尝试使用“0”DNS ttl作为服务发现终结点。但面临同样的问题。如果您的服务器被指定为上游组的一部
我尝试使用“0”DNS ttl作为服务发现终结点。但面临同样的问题。如果您的服务器被指定为上游组的一部分或在某些其他情况下,Nginx无法在运行时解决问题,请参阅以了解更多详细信息。这意味着Nginx永远不会意识到正在注册用于服务发现的新容器 你还没有发布你的Nginx配置,所以很难说你能在那里做什么。对于proxy_pass指令,有些人建议使用变量强制执行运行时解析 另一个想法可能是从侦听连接并重新加载Nginx配置的Nginx容器中公开http端点。然后,当注册新容器时,lambda可以触发该端点(lambda由CloudWatch事件触发)。免责声明:我还没有在实践中尝试过这一点,但它可能会起作用