【发布时间】:2017-05-19 20:57:43
【问题描述】:
我正在使用 docker 运行多个 MySQL 实例。我打算使用 nginx 作为反向代理服务器,我想为每个实例分配公共 IP,这样我就可以将公共 IP 映射到我的 docker 网络,这可能吗?
【问题讨论】:
标签: networking nginx docker docker-networking
我正在使用 docker 运行多个 MySQL 实例。我打算使用 nginx 作为反向代理服务器,我想为每个实例分配公共 IP,这样我就可以将公共 IP 映射到我的 docker 网络,这可能吗?
【问题讨论】:
标签: networking nginx docker docker-networking
您可以简单地将私有地址空间中的保留 IP 用于 docker 容器,通过设置公共 ip 使您的 nginx 实例可从 Internet 路由,最后您可以对 docker 容器的负载平衡请求。
【讨论】:
您可能希望将 consul 与注册表部分一起使用,因为 Consul 为您提供了所有已注册实例的 DNS 服务器:https://www.consul.io/docs/agent/dns.html
这或多或少意味着,docker 实例向 consul 注册,并且 consul 也可以为外部服务解析它们。不过,这将要求您拥有多个公共 IP。
如果你只想要一个公共 ip,你显然想要负载平衡 mysql,因为 TCP 连接不能通过路径/域“路由”。 也就是说,您可以使用 consul 作为服务发现和 tiller+consul 后端为上游生成您的 nginx 配置,列出所有当前可用的服务器
【讨论】: