我有一个域名(www.0signals.com),想要创建一个子域名,比如uploads.0signals.com如何配置httpd.conf
和其他文件?我应该在哪里创建文件夹uploads
?我是否需要创建任何其他文件夹来支持子域名?
我正在使用eatj和java作为核心语言的预先计划。我的目录结构如下所示:
我不确定我做错了什么。我在DNS中更新了区域,子域/域都指向同一个IP。我认为我在配置文件上做错了或者在错误的位置创建了文件夹。
答案 0 :(得分:0)
如果您使用的是代理服务器(Apache httpd),那么Tomcat并不关心您的配置:您可以根据需要在同一主机名(或主机名)上提供所有Web应用程序。在这种情况下,为多个VirtualHost配置httpd,然后将所需的任何URL空间映射到Tomcat。
但是,如果您要分离您的网络应用程序,以便(比方说)www.0signals.com
上有一个可用,而uploads.0signals.com
上有另一个可用(但不是两者),那么您将不得不在Tomcat的<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
目录中有webapps
个目录(或uploads
个文件)后,您应该好好去。除非您要配置SSL,否则对两个主机名使用相同的IP地址应该不是问题,在这种情况下,您可能会遇到仅与单个域匹配的SSL证书有困难。有办法解决这个问题,但它们与你的问题无关。
更新 哦,还有一件事:在这种情况下没有特别的理由使用Apache httpd。你需要eatj
使用httpd吗?上面的配置在没有httpd的情况下工作得很好。如果您打算将所有流量代理到Tomcat,那么就没有理由安装Apache httpd。
更新2012-06-29 以下几点:
您的DNS不是您的问题(至少现在不是):
$ host www.0signals.com www.0signals.com的地址为69.46.75.150 $ host uploads.0signals.com uploads.0signals.com的地址为69.46.75.150
联系www.0signals.com
和uploads.0signals.com
时,我会收到来自两个不同服务器的回复:www.0signals.com
回复Server
标题Apache -Coyote/1.1
(那是Tomcat)而另一个用Apache/2.0.63
响应(那是Apache httpd)。如果您使用Apache httpd处理所有请求,那么您缺少一些JkMount
(如果您使用的是mod_jk)或ProxyPass
/ ProxyPassReverse
(如果您在VirtualHost
uploads.0signals.com
中使用mod_proxy_ *)。请记住,mod_jk和mod_proxy_ *都不会将您的指令从一个VirtualHost复制到另一个:您必须手动执行。
答案 1 :(得分: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>