我有这样的情况,我想将我的根域,即www.abc.com指向tomcat中的上下文,* .abc.com指向tomcat中的另一个上下文。
目前www.abc.com abc.com和* .abc.com都指向我在tomcat中的ROOTcontext,但我想要
www.abc.com和abc.com指向ROOT和
* .abc.com到tomcat中的其他一些上下文。
答案 0 :(得分:0)
这是一个旧的,但是自从我从谷歌的第一页到达这里,它值得一个答案。
我想最好的方法是将“VirtualHost”添加到你的httpd和“主机”中,添加到每个子域的tomcat的server.xml中。以此作为“HelloMultiWorld”示例:
<VirtualHost *:80>
ServerName abc.com
ServerAlias www.abc.com sd1.abc.com
...
ProxyPreserveHost true
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
...
</VirtualHost>
并且,在Tomcat的server.xml中:
<Engine defaultHost="localhost" ...>
...
<Host name="localhost" appBase="webapps" ...>...</Host>
<Host name="sd1.abc.com" appBase="webapps-sd1"...>...</Host>
</Engine>
显然,你需要一个带有自己的ROOT.war的“webapps”和“webapps-sd1”文件夹。
使用此配置,HTTPd将代理所有abc.com,www.abc.com和sd1.abc.com请求到Tomcat(使用AJP - 您也可以使用HTTP / 8080)。 Tomcat将收到带有“Host:xxx.abc.com”HTTP标头的请求(因为“ProxyPreserveHost”)。在server.xml中有多个“主机”,它将根据“主机”标头路由请求。所有未识别的主机都将路由到'defaultHost'。