如何在一个IP地址中托pipe多个dockerized网站(ngnix)?

这里是我的场景:1.我有一个aws ec2机器(coreOs)2.我已经承载了多个API – 所有在docker集装箱3.我有HA代理监听另一个端口,监听某个端口(比如999)和负载均衡多个API。 完美的作品… 4.我有另一个ngnix容器,托pipe我的angular度网站。 这显然听端口80.假设它映射到http://pagladasu.com

我想要的是创buildhttp://one.pagladasu.com和http://two.pagladasu.com等等。 并希望每个指向docker集装箱不同的angular度应用程序。

问题是 – 两个都需要听80端口 – 所以如何做到这一点?

创build一个在端口80上侦听并运行Nginx的容器。 使用proxy_pass将连接发送到上游angular容器,为每个子域( one.pagladasu.comtwo.pagladasu.com )configuration虚拟主机的Nginx。 像这样的东西:

 server { listen 80; server_name one.pagladasu.com; location / { proxy_pass http://one-pagladasu-com; } } server { listen 80; server_name two.pagladasu.com; location / { proxy_pass http://two-pagladasu-com; } } 

将这个Nginx容器连接到两个angular形容器。 Docker会为你修改/etc/hosts ,以便你可以通过名字来引用它们。 在这种情况下,我假定他们被命名为one-pagladasu-com但当然可以是任何东西。

现在stream程是Requests => Nginx虚拟主机容器=> Angular容器=> HAProxy => APIs。