Apache Reverse Proxy到多个应用程序,模糊了上下文根

时间:2017-02-28 23:43:50

标签: apache reverse-proxy tomcat8

Hokay ......所以......

我有一系列应用程序部署到单个Tomcat应用程序服务器。我们称之为appOne,appTwo和appFoo。

我正在使用Apache反向代理监听appOne.mysite.com,appTwo.mysite.com和appFoo.mysite.com,并使用类似于以下内容:

<VirtualHost appOne.mysite.com:443>
[ ... ]
    ProxyPass / http://serverOne.mysite.com:8080/appOne/
    ProxyPass Reverse / http://serverOne.mysite.com:8080/appOne/
[ ... ]
</VirtualHost>

由于Tomcat的工作原理,每个应用程序都在serverOne.mysite.com:8080上被授予了自己的应用程序上下文。

但是,我不希望用户知道他们正在使用appOne,而不是appFoo,因此我想将其隐藏在浏览器报告的网址模式中。

因此,对appOne.mysite.com的请求应显示为appOne.mysite.com,而不是appOne.mysite.com/appOne/

拒收

将应用程序的war文件重命名为ROOT.war并部署它是很诱人的,因为它会自动获取根上下文。但在这种情况下,每个应用程序应该看起来是它自己的根上下文(这不是我们使用反向代理配置的部分原因吗?)。

建议我使用Tomcat关闭autoDeploy并为每个应用程序提供自定义context.xml文件也很诱人......但这并不能解决因根上下文指定争用的应用程序问题,并最终类似于重命名war文件只是为了获取上下文根。

它也是诱人的(看我在那里做了什么?)建议我安装多个版本的Tomcat监听独特的端口......但是这要求我的组织打开防火墙请求的复杂性不同的端口,我预计会有越来越多的这些应用程序弹出并共享这个Tomcat实例。 ( YAY表示单线程单点故障!

什么关于......?

我还考虑过可以采用程序化方法向开发人员推荐使其更加无缝,但我不像Java DEV那样支持它的基础架构。 我愿意接受建议。

这是可能的......

完全有可能答案是瞪着我的脸,而我却看不到它,因为我一直盯着这个问题太长时间,或者从错误的角度来看问题。

0 个答案:

没有答案