0

我有一个域 ( www.0signals.com ) 并想创建一个子域,比如 uploads.0signals.com 我如何配置httpd.conf和其他文件?我应该在哪里创建文件夹uploads?我是否需要创建任何其他文件夹来支持子域?

我正在使用eatj 和java 作为核心语言的高级计划。我的目录结构如下所示:

  • 垃圾桶
  • 配置
  • 网络应用程序/ROOT
  • 上传/ROOT

我不确定我做错了什么。我更新了 DNS 中的区域,子域/域都指向同一个 IP。我想我在配置文件上做错了,或者在错误的位置创建了文件夹。

4

2 回答 2

0

如果您使用的是代理服务器(Apache httpd),那么 Tomcat 并不关心您的配置是什么样的:如果您愿意,您可以在相同的主机名(或多个主机名)上提供所有 Web 应用程序。在这种情况下,为多个虚拟主机配置 httpd,然后将您想要的任何 URL 空间映射到 Tomcat。

但是,如果您想分离您的 webapps 以便(比如说)一个可用,www.0signals.com另一个可用(但不能同时使用),那么您将不得不在 Tomcatuploads.0signals.com中创建多个,如下所示:<Host>server.xml

<Host name="localhost" appbase="webapps">
  ...
</Host>
<Host name="uploads.0signals.com" appbase="uploads">
  ...
</Host>

我将默认的“localhost”留<Host>在了那里,但没有特别标识它,www.0signals.com因为它应该是默认的<Host>,并且得到任何与定义的任何其他主机都不匹配的东西。

这些appbase值是相对于 Tomcat 的CATALINA_BASE,它本质上是您现有目录所在位置的父目录webapps。如果您想完全限定appbase,欢迎您这样做。

一旦你分别在和目录中拥有你的ROOT目录(或ROOT.war文件),你应该很高兴。除非您要配置 SSL,否则为两个主机名使用相同的 IP 地址应该不是问题,在这种情况下,您可能很难使用仅匹配单个域的 SSL 证书。有一些方法可以解决这个问题,但它们与您的问题无关。webappsuploads

更新哦,还有一件事:在这种情况下没有特别的理由使用 Apache httpd。您是否需要eatj在前面使用 httpd?上面的配置在没有 httpd 的情况下可以正常工作。如果您打算将所有流量代理到 Tomcat,那么根本没有理由安装 Apache httpd。

2012-06-29 更新有几件事:

  1. 您的 DNS 不是您的问题(至少现在不是):

    $ host www.0signals.com www.0signals.com 有地址 69.46.75.150 $ host uploads.0signals.com uploads.0signals.com 有地址 69.46.75.150

  2. 当联系每一个www.0signals.comuploads.0signals.com时,我从两个不同的服务器得到响应:www.0signals.com响应(即 Tomcat)的Server标头,而另一个响应(即 Apache httpd)。如果您使用 Apache httpd 来处理所有请求,那么您在for . 请记住,mod_jk 和 mod_proxy_* 都不会将您的指令从一个虚拟主机复制到另一个虚拟主机:您​​必须手动完成。Apache -Coyote/1.1Apache/2.0.63JkMountProxyPassProxyPassReverseVirtualHostuploads.0signals.com

于 2012-06-17T19:15:25.440 回答
0
<Host appBase="uploads" autoDeploy="true" name="uploads.0signals.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
        -->

      </Host>
于 2012-06-29T07:29:15.793 回答