多个 public IP 地址到一个 Nginx?

Multiple public IP addresses to one Nginx?

我是 运行 使用 docker 的 MySQL 的多个实例。我打算使用 nginx 作为反向代理服务器,我想为每个实例分配 public IP,这样我就可以将 public ip 映射到我的 docker 网络,这可能吗?

您可以简单地将私有地址 space 中的保留 IP 用于 docker 容器,通过设置 public ip 使您的 nginx 实例可从互联网路由,最后您可以对您的 docker 个容器的负载平衡请求。

您可能希望将 consul 与注册表部分一起使用,因为 Consul 为您提供了一个用于所有已注册实例的 DNS 服务器:https://www.consul.io/docs/agent/dns.html

或多或少意味着,docker 个实例向 consul 注册,并且 consul 也可以为外部服务解析它们。不过,这需要您拥有多个 public IP。

如果您只需要一个 public ip,您显然想要负载平衡 mysql,因为 TCP 连接不能 "routed" 按路径/域。 也就是说,您可以使用 consul 作为服务发现和 tiller+consul 后端为上游生成 nginx 配置,列出所有当前可用的服务器