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

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

我可以这样做

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

作品,但我想要的是

 http://virtualhost1.example.com/ 

直接去我的申请。 networking上的许多教程网站只是让你的networking应用程序成为“ROOT”,但是在多个grails-app虚拟主机环境中却不起作用。

我试过用了

 <Host name="virtualhost1.example.com" ...> </Host> 

标签在tomcat / conf / server.xml文件中,但它似乎没有做任何事情(是的,我重新启动tomcat每次我改变它。)

我也尝试了一切,我可以想到在我的Apacheconfiguration文件的虚拟主机,并不能得到它的工作。

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

我假设你正在使用mod_jk连接Apache和Tomcat。 如果是这样,你将不得不在Tomcat中配置虚拟主机以及Apache (conf / server.xml中的多个<Host>声明 )

这基本上意味着你将在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(s)放入单独的文件夹{renapps,stimpyapps},而不是默认的“webapps”文件夹

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

让我们知道你发现了什么! 其他人用mod_proxy做到这一点?