Nginx代理到在不同CoreOS节点上运行的许多容器

前端之家收集整理的这篇文章主要介绍了Nginx代理到在不同CoreOS节点上运行的许多容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

浏览网页,我发现了很多关于使用Nginx / Confd(或Haproxy或Vulcand)代理运行在同一主机上的不同Docker容器的教程.但是,我需要做的不同.概述了我的基础架构:

>具有5个节点的在线CoreOS集群,全部运行etcd
>在群集的每个节点上使用fleet启动不同的Docker容器(运行wordpress应用程序的Nginx Web服务器),而不暴露端口并在etcd上编写他们的ips(使用docker检查的Docker ip).
>如果节点出现故障,我的服务将自动在另一个可用节点上移动

现在,我需要做的是让一个Nginx代理将我的流量路由到各种容器,具体取决于vhost.举个例子:

Nginx(带有酒吧IP)接收请求xxx.domain.com – >节点-1 – >自动分配ip的容器(侦听端口80)

Nginx(带有酒吧IP)接收请求yyy.domain.com – >节点-2 – >自动分配ip的容器(侦听端口80)

在这里我的问题:

>这是我的情况正确吗?我在想错吗?
>我的Nginx代理必须在CoreOS集群之外?或者我必须在每个CoreOS节点上运行它?
>我如何实现此配置?什么是最好的方式?

先感谢您!

最佳答案
您需要某种类型的Nginx服务发现才能“找到”在节点上运行的容器.您可以在容器启动时将记录写入etcd,并在退出删除并让Nginx检查这些记录.

对于移动服务,您可以查看机群以进行简单的调度.

猜你在找的Nginx相关文章