我有3个(应用客户端,应用程序A,应用程序-b)的应用程序在码头服务器和一个NGINX负载平衡器(APP-磅)运行。所有(内部或外部)请求都通过负载平衡器来到我的应用程序。基于Web上下文(/ app-a /或/ app-b /)名称,LB会将请求转发到正确的应用程序。我已经在LB中配置了(location/app-a /和location/app-b和location/app-client)。 app-a将调用app-b,app-b将调用app-a,app-client将从外部调用,app-client将调用app-a或app-b。泊坞jwilder/nginx的代理位置配置
我为我的应用程序编写了Docker-composer。为了避免循环依赖,我使用了Docker网络。它运作良好。
如果我扩大我的申请。 LB不知道这个新的应用程序容器。
我已经去了很少的教程,并试图使用jwilder/nginx代理而不是NGINX。如果我使用VIRTUAL_HOST = app-name变量,它将在配置文件中更新上游。但是,我的应用程序正在基于每个容器的位置映射运行。如果我没有指定,请求将如何更正容器。
如何在LB的default.conf文件中给出如下所示的位置映射,因为此配置是通过容器动态更新的或如何创建内部调用URL。
location /app-a {
proxy_pass http://app-a;
}
location /app-client {
proxy_pass http://app-client;
}
location /app-b {
proxy_pass http://app-b;
}
Request from outside: http://IP:9090/app-client/
Internal call : http://app-lb:80/app-a/
http://app-lb:80/app-b
LB exposed port no is 9090
我打算使用dockercloud-haproxy。它有虚拟路径和主机。请在此建议我 – Gnana
上面的问题是jwilder的nginx-proxy,我在这里已经回答了。我对dockercloud-haproxy没有任何建议,那将是一个不同的问题。 – BMitch