Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker AWS服务发现、nginx和节点问题_Docker_Amazon Ecs_Service Discovery_Aws Fargate - Fatal编程技术网

Docker AWS服务发现、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作为服务发现终结点。但面临同样的问题。如果您的服务器被指定为上游组的一部

我在AWS ECS fargate中运行2个服务。一种是在应用程序负载平衡器后面运行nginx容器。另一个是运行node.js应用程序。节点应用程序正在运行,服务发现和Nginx容器代理到节点应用程序容器的“服务发现端点”

我的问题是: 将节点应用程序容器从1扩展到2后。Nginx无法将请求发送到新生成的容器。它只将请求发送到旧容器。重新启动/重新部署nginx容器后,它能够将请求发送到新容器


我尝试使用“0”DNS ttl作为服务发现终结点。但面临同样的问题。

如果您的服务器被指定为上游组的一部分或在某些其他情况下,Nginx无法在运行时解决问题,请参阅以了解更多详细信息。这意味着Nginx永远不会意识到正在注册用于服务发现的新容器

你还没有发布你的Nginx配置,所以很难说你能在那里做什么。对于proxy_pass指令,有些人建议使用变量强制执行运行时解析

另一个想法可能是从侦听连接并重新加载Nginx配置的Nginx容器中公开http端点。然后,当注册新容器时,lambda可以触发该端点(lambda由CloudWatch事件触发)。免责声明:我还没有在实践中尝试过这一点,但它可能会起作用