我一直无法弄清楚如何在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
做到这一点?