下面是我的场景:1. 我有一台aws ec2机器(coreOs)2. 我在其中托管了多个api——都在docker容器中3.我让HA代理侦听侦听某些端口(例如999)的另一个端口,并对多个api进行负载平衡。效果很好……4. 我有另一个nnix容器来承载我的angular站点。这显然侦听端口80。假设它被映射到http://pagladasu.com
我想创建http://one.pagladasu.com和http://two.pagladasu.com等等。并且希望每个都指向docker容器中不同的angular应用。
问题是-两者都需要侦听端口80 -那么如何实现这一点?
创建一个监听80端口并运行Nginx的容器。为每个子域(one.pagladasu.com
, two.pagladasu.com
)配置Nginx的虚拟主机,使用proxy_pass
将连接发送到上游的角容器。像这样:
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
,但当然它可以是任何名称。
现在流程是Requests => Nginx virtual hosts container => Angular container => HAProxy => api