【发布时间】:2012-08-02 16:20:37
【问题描述】:
我在 tomcat 7 中配置虚拟主机时遇到问题。
到目前为止,我已经做了以下工作:
-
在 server.xml 文件中添加了一个 Host 元素,其中 appBase 作为包含我的 Web 应用程序的 webapp 文件夹。
<Host name="www.*myhostname*.com" appBase="my_webapp_folder_name" unpackWARs="true" autoDeploy="true"> <Context docBase="path_of_external_folder" path="/img" /> </Host> -
更改了 Catalina 引擎中的 defaultHost。
<Engine name="Catalina" defaultHost="www.*myhostname*.com"> 在 catalina.home 中创建了一个 webapp 文件夹 (my_webapp_folder_name)。还在这个 webapp 文件夹中创建了一个 ROOT 文件夹。
复制了此 ROOT 文件夹内的所有 JSP/HTML、类文件、CSS 等。
-
在 catalina.home/conf/Catalina/myhostname 文件夹中创建了一个 ROOT.xml 文件,内容如下:
<Context path="" docBase="${catalina.home}/my_webapp_folder_name/ROOT" />
我在这里遗漏了什么吗?因为,在完成上述所有操作后,我无法使用主机名进行连接。 但是如果我输入服务器的 IP 地址,它就可以正常工作。
我不能说是否有任何权限相关的问题。
请帮我解决这个问题。
【问题讨论】:
-
您的配置中的一些小错误(与您遇到的问题无关,但应该修复):1)不要在
server.xml中配置<Context>元素:相反,在conf/[service]/[hostname]/[context].xml中使用[context].xml,就像使用ROOT.xml一样。 2) 永远不要在<Context>元素中使用path属性:上下文路径将取自 XML 文件的名称。 -
还有一件事:如果您不需要多个虚拟主机,则根本不用修改
server.xml:如果您将defaultHost设置为,Tomcat 可以完美运行localhost并且只定义了一个<Host>。 IMO 这是一个更好的配置,因为只要您的 DNS 设置正确(这当然是您遇到的真正问题),您就可以支持任意主机名。此外,它还允许您使用完全默认的配置,这使得升级更加容易。
标签: java tomcat virtualhost server.xml