我有一个Apache 2.4反向代理配置,在HTTPD.CONF文件中带有以下代码,并已加载了所有适当的模块:
<VirtualHost *:80>
<Proxy balancer://testcluster>
BalancerMember http://localhost:8080 route=tomcat1
BalancerMember http://localhost:8081 route=tomcat2
BalancerMember http://localhost:10124 route=jetty1
BalancerMember http://localhost:10224 route=jetty2
ProxySet lbmethod=bytraffic
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass / balancer://testcluster/
ProxyPassReverse / balancer://testcluster/
</VirtualHost>
localhost:8080
和8081
是Tomcat8服务器,而localhost:10124
和10224
是Jetty服务器(Embedded-Jetty)。另外,我在Windows HOSTS文件中将 localhost / 127.0.0.1 命名为 mydomain.com 。因此,当我在不同的浏览器中键入 localhost 或 mydomain.com 时,将得到预期的不同的Tomcat和Jetty服务器实例。
localhost:8081
在/mee/portal/
中有一些应用程序文件夹,例如/mee/pws/
和webapps
,并且 portal 和 pws 包含JSP页面。 localhost:10224
在/mee/abc_lmn/
和/mee/abc_xyz/
之类的文件夹中还包含一些Java servlet。
门户有一个索引页面,我可以通过输入以下内容轻松访问:
mydomain.com/mee/portal/index.jsp
,此页面包含指向端口10224上Jetty服务器中页面之一的链接:
mydomain.com/mee/abc_xyz/change.jsp
但是当我单击链接时,请求永远不会转发到端口10224的Jetty,而Tomcat却说该页面不存在。我知道我的Apache配置不够智能,无法告诉Tomcat将此类请求转发给Jetty,并且我不希望将链接重命名为localhost:10224/mee/abc_xyz/change.jsp
之类的东西(假设这可以解决问题)。
如何重新配置代码,以便将这些请求转发给Jetty? (尽管与端口8080
和10124
上的其他两个Tomcat和Jetty服务器没有冲突)。
除此之外,更好的是,如何告诉Apache转发到mydomain/mee/abc_(*)
的任何请求以直接转发到10224的Jetty服务器? [链接中的(*)如前所述是lmn
或xyz
。
提前谢谢!
使用Windows Server 2016