将Nginx Docker容器连接到16名工作人员
我有一个Nginx的Docker容器和16台负载平衡的Web服务器,每台都暴露主机8081-8096
上的一个端口:
docker run -d \ --restart always \ --name "web.${name}" \ -v /srv/web/web-bundle:/bundle \ -p "${port}":80 \ kadirahq/meteord:base
在我尝试缩放之前,我的Nginx容器曾经链接到唯一的web
图像:
docker run -d \ --name nginx \ --link web.1:web.1 \ -v /srv/nginx:/etc/nginx \ -v /srv/nginx/html:/usr/share/nginx/html \ -p 80:80 \ -p 443:443 \ nginx
Nginx上游configuration:
upstream web { ip_hash; server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; # ... you get the point }
我需要这个Nginx的图像能够打127.0.0.1:8081-8096
,但它似乎不允许这样做。 我不想让16 --link
! 这似乎closures。
什么是正确的方法来做到这一点?
您没有select使用nginx通过一系列的端口,而不是指定每个端口的请求。
我build议尝试一下: https : //github.com/jwilder/nginx-proxy
这是一个nginx容器,可以自动发现需要代理的任何其他容器。 它从其他容器中读取一些特殊的env var,以便知道如何代理它们。
使用 – --network
而不是 – --link
。 只要你把所有的容器放在同一个networking中,你就不需要链接它们。 – --link
正在被弃用 。
docker network create mynet docker run --network mynet ........