使用Apache / Tomcat +虚拟主机部署多个grails应用程序

时间:2009-11-26 21:44:38

标签: apache tomcat grails deployment

我无法弄清楚如何使用Apache / Tomcat部署多个grails应用程序,其中虚拟主机映射到每个grails应用程序

我可以得到它

http://virtualhost1.example.com/myGrailsApplication-0.1/ 

有效,但我想要的是

http://virtualhost1.example.com/

直接转到我的申请表。网络上的很多教程网站只是让你的网络应用程序成为“ROOT”网站,但这不适用于多个grails-app虚拟主机环境。

我尝试使用

<Host name="virtualhost1.example.com" ...> </Host>
tomcat / conf / server.xml文件中的

标签,但似乎没有做任何事情(是的,我每次更改时都会重新启动tomcat。)

我也在虚拟主机的apache配置文件中尝试了我能想到的一切,并且无法让它工作。

那么,当我有多个grails webapps,虚拟主机,并且我不希望我的webapp是“ROOT”时,如何摆脱URL中的app名称?

1 个答案:

答案 0 :(得分:3)

我假设您使用mod_jk连接Apache&amp; Tomcat的。如果是这样,您必须{/ 3}}(conf / server.xml中有多个configure virtual hosting within Tomcat as well as Apache

这基本上意味着您将在conf / server.xml中有两个<Host ...>声明。它们将有不同的名称和appBase,但你仍然需要命名战争ROOT.war

他们给出的例子是:

<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="renapps"/>
    <Host name="stimpy" appBase="stimpyapps"/>
</Engine>

在配置虚拟“<host> s的DNS”(非常类似于Apache)之后,您必须将ROOT.war放入单独的文件夹{renapps,stimpyapps}而不是默认'webapps'文件夹

此方法有效,但还有另一种使用mod_proxy而不是mod_jk的方法。我对mod_proxy并不熟悉,但基本上你会有连接器句柄将根上下文翻译成实际的上下文。因此,在配置之后,它将代理&amp;转发请求发送到http://virtualhost1.example.com/到Tomcat(/myGrailsApplication-0.1/

内的正确上下文

让我们知道您的发现!其他人使用mod_proxy执行此操作?