如何将 nginx 用作 Bluemix 上的动态负载平衡代理服务器?

How can I use nginx as a dynamic load balancing proxy server on Bluemix?

我正在使用 docker-compose 来 运行 bluemix 容器服务上的应用程序。我正在使用 nginx 作为代理网络服务器和负载平衡器。

我找到了一个图像,它使用 docker 事件来自动检测新的 Web 服务器并将它们动态添加到 nginx 配置中:

https://github.com/jwilder/nginx-proxy

但要使其正常工作,我认为容器需要连接到 docker 套接字。我对 docker 不是很熟悉,我也不知道它到底是做什么的,但本质上它是必要的,这样图像才能监听 docker 事件。

图像文档中的 运行 命令如下:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

我无法在容器服务中运行这个,因为它在主机上找不到/var/run/docker.sock文件。

bluemix 文档有 tutorial explaining how to do load balancing with nginx。但它需要 nginx 配置中的 "hard coded" 个 Web 服务器列表。

我想知道如何 运行 nginx-proxy 图像以便自动检测网络实例?

Bluemix 上的容器服务不会公开 docker 套接字(不足为奇,这会对计算主机构成安全风险)。几种替代方法来完成您想要的:

  • 类似 amalgam8 或 consul 的东西,基本上就是这样做的
  • 相似,但自写 - 有一个共享卷,然后每个 容器在启动时向该共享卷添加一个文件说明它的内容 是,加上它的私有ip。 nginx 容器监视共享 音量,并在更改时重新加载。 (比 amalgam8 或 领事,但也许更多的控制)