Tomcat虚拟主机配置混乱

Tomcat虚拟主机配置混乱,tomcat,grails,virtualhost,Tomcat,Grails,Virtualhost,我正在将我的第一个Groovy/Grails应用程序部署到Tomcat 6服务器上,在Tomcat上配置虚拟主机时遇到了一些困惑。我运行Grails附带的Tomcat部署脚本,它将WAR文件复制到webapps文件夹下的Tomcat服务器上,并对其进行解压缩(或者Tomcat会这样做,我不确定)。因此,我有以下几点: C:\Program Files\Tomcat\webapps\myapp.WAR C:\Program Files\Tomcat\webapps\myapp\{all files

我正在将我的第一个Groovy/Grails应用程序部署到Tomcat 6服务器上,在Tomcat上配置虚拟主机时遇到了一些困惑。我运行Grails附带的Tomcat部署脚本,它将WAR文件复制到webapps文件夹下的Tomcat服务器上,并对其进行解压缩(或者Tomcat会这样做,我不确定)。因此,我有以下几点:

C:\Program Files\Tomcat\webapps\myapp.WAR
C:\Program Files\Tomcat\webapps\myapp\{all files from the WAR}
通过使用服务器的DNS名称,我可以无任何问题地访问此服务器:

http://server.dns.com/myapp/
但是,我在尝试为此创建虚拟主机时遇到了问题。我已将以下行添加到server.xml文件中:

<Host name="www.fancynewdomainname.com" appBase="webapps/myapp"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
</Host>

但它似乎主要是空的,其中只有几个模仿WAR文件中文件夹的空文件夹。

尝试从
appBase
属性中删除上下文名称,例如
appBase=“webapps”

编辑:

如果我正确理解您试图实现的目标,我认为您需要为每个虚拟主机定义一个单独的appBase,例如:

<Host name="www.somedomainname.com" appBase="webapps" ...
<Host name="www.fancynewdomainname.com" appBase="webapps2" ...

将原始server.xml行更改为以下行似乎可以使事情正常进行:

<Host name="www.fancynewdomainname.com" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
  <Context path="" docBase="myapp"/>
</Host>


基本上,我将appBase更改为“webapps”,并添加了包含上下文定义的行,该行实际指向webapps下的正确应用。

在Grails Config.groovy中,您可以通过添加以下内容来更改上下文:

C:\Program Files\Tomcat\webapps\myapp.WAR
C:\Program Files\Tomcat\webapps\myapp\{all files from the WAR}
grails.app.context=“${appName}-helloworld”

顺便说一下,是Tomcat揭开了战争的面纱。将unpackWARs设置为false将阻止这种情况发生


另一种处理方法是将ApacheHTTP服务器放在前面,然后代理到Tomcat服务器。这也提供了额外的保护层。

这是令人困惑的事情之一。。。如果我将其更改为“webapps”,Tomcat如何知道将dns名称指向“webapps/myapp”与“webapps/myotherapp”或“webapps/myotherapp”?感谢您的编辑。。。不幸的是,这需要手动部署,因为Grails-Tomcat-deploy脚本将应用程序放在webapps文件夹中,并且它们被扩展到webapps文件夹的子文件夹中。然而,我相信我找到了实现这一目标的方法。我很快会发布一个答案。我说得太快了。这确实有效,因为它正确地访问了主机指向的“应用程序”,但是,它忽略了应用程序中定义的所有上下文信息,因为我在server.xml文件中包含了一个上下文条目。所以这不是一个合适的解决方案。你找到合适的解决方案了吗?我也面临着类似的问题。