ALB在一个公共端口(tomcat)上映射多个上下文路径

时间:2018-11-12 14:11:04

标签: amazon-web-services amazon-elb

当前,我们有基于tomcat的部署和一台Apache服务器来管理同一端口上的多个上下文路径(v主机配置)

例如,

ProxyPassMatch / test(。http://127.0.0.1:7077/test $ 1 *

ProxyPassMatch / test2(。http://127.0.0.1:7077/test2 $ 1 *

以此类推

现在,我们正在转向AWS的ALB,我们希望映射Apache配置文件中存在的ALB中的所有上下文路径。

我们在80端口上创建了 ALB->侦听器->使用具有必要端口7077的实例创建的目标->通过了运行状况检查

监听器规则是

上下文路径/ test->转发到7077端口的目标组

上下文路径/ test2->转发到7077端口的目标组

但是在测试时,当我们关闭Apache并测试ALB时,它显示502 Bad Gateway

有解决方案吗?

1 个答案:

答案 0 :(得分:0)

应用程序负载平衡器无法像使用典型的反向代理一样重写去往目标的路径。

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions说:

  

路径模式用于路由请求,但不会更改请求。例如,如果规则的路径模式为/ img / *,则该规则会将对/img/picture.jpg的请求转发为指定的目标组,作为对/img/picture.jpg的请求。

特定于Tomcat:

也许您可以让Tomcat应用程序在context.xmlserver.xml中进行配置,以侦听多个路径。 question提出了一些建议,但似乎如果您有多个上下文,则该应用程序将运行两次,并占用两倍的内存。