【问题标题】:ECS Nginx network setupECS Nginx 网络设置
【发布时间】:2021-11-14 18:06:24
【问题描述】:

我在 ECS 上有 3 个容器:web、api 和 nginx。基本上 nginx 将流量代理到 webapi 容器:

upstream web {
  server web-container:3000;
}

upstream api {
  server api-container:3001;
}

但每次我重新部署 webapi 时,他们都会更改他们的 IP,所以我需要在之后重新部署 nginx 以使其“拾取”新 IP。

有没有办法避免这种情况,所以我可以更新假设api 服务和nginx 服务会自动代理到正确的 IP 地址?

【问题讨论】:

    标签: nginx amazon-ecs


    【解决方案1】:

    我假设这些容器属于 3 个不同的任务定义,最终属于 3 个不同的任务(或者更好的是 3 个不同的服务)。

    如果这是设置,那么您想为此使用service discovery。这仅适用于 ECS 服务,其想法是您创建 3 个不同的服务,每个服务中包含 1 个以上的任务。您为服务命名(例如nginxwebapi),其中的每个容器都将能够通过指向 fqdn 来解析其他容器(例如api.local)。当您在 nginx 服务中的容器尝试连接到 api.local 时,服务发现会将该名称解析为 ECS 服务 api 中的任务之一的 IP。

    如果您想查看有关如何设置的示例,可以查看demo app,尤其是this CloudFormation template

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 1970-01-01
      • 2019-05-31
      • 2021-07-09
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      相关资源
      最近更新 更多