【问题标题】:Issue in configuring virtual host in tomcat 7在tomcat 7中配置虚拟主机的问题
【发布时间】: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中配置&lt;Context&gt;元素:相反,在conf/[service]/[hostname]/[context].xml 中使用[context].xml,就像使用ROOT.xml 一样。 2) 永远不要在 &lt;Context&gt; 元素中使用 path 属性:上下文路径将取自 XML 文件的名称。
  • 还有一件事:如果您不需要多个虚拟主机,则根本不用修改server.xml:如果您将defaultHost 设置为,Tomcat 可以完美运行localhost 并且只定义了一个 &lt;Host&gt;。 IMO 这是一个更好的配置,因为只要您的 DNS 设置正确(这当然是您遇到的真正问题),您就可以支持任意主机名。此外,它还允许您使用完全默认的配置,这使得升级更加容易。

标签: java tomcat virtualhost server.xml


【解决方案1】:

这一定是名称解析的问题。您必须能够解析 www.myhostname.com。

如果只是在你的电脑上开发,你可以添加一个名字记录:

在 Windows 上:

C:\Windows\System32\drivers\etc\hosts

在 Linux 上:

/etc/hosts

您可以使用 nslookupdig 检查分辨率。

否则,设置您的 DNS 以将 www.myhostname.com 解析为您的 Tomcat 绑定地址。

【讨论】:

  • 这意味着您的服务器需要可从网络(Internet 或本地网络)访问。转到负责域“myhostname.com”的权威服务器并添加指向您的 Tomcat 绑定地址的 IP 地址的 A 或 CNAME 记录。听起来很熟悉吗?
猜你喜欢
  • 2012-08-13
  • 2011-11-05
  • 1970-01-01
  • 2013-01-30
  • 2010-10-28
  • 2014-05-28
  • 2014-06-15
  • 2016-02-27
  • 2013-05-27
相关资源
最近更新 更多