Roy*_*pen 3 java apache tomcat mod-jk multiple-domains
好吧,所以我已经在这方面工作了一段时间,并一直在寻找,但到目前为止,我还没有找到任何实际回答我想知道的答案.我对这个问题有点了解,但我希望我能在不久的将来解决这个问题.
所以我安装了Apache 2并提供了标准网页,但我也将其链接到目前支持的某个域的Tomcat实例.但是,我想通过Apache向服务器添加另一个域,该域指向与我已有的代码库不同的代码库.我从几个不同的角度来看待这个问题,我已经确定我对设置这些服务器以了解我想做的事情还不够了解.
我的服务器上的信息很少:目前用Apache 2运行一个Tomcat5.5实例,使用mod_jk将它们连接在一起.
我在workers.properties中有一个worker,它使用正确的端口我的Tomcat实例将它的"host"字段指向"localhost",这样一切正常.
在我的Tomcat server.xml文件中,我有一个定义为"localhost"的主机,它指向我当前正在服务的webapp,并将该主机设置为defaultHost.
我有一个想法是我可以添加一个与"localhost"(即host2)不同的主机的新工作者,然后在我的server.xml文件中定义一个名为"host2"的新主机以匹配它,但在阅读了一些之后互联网,似乎工作者的"主机"必须指向服务器,而不是Tomcat实例中的主机名,这是正确的吗?
再一次,我想要的简单概述:在apache/tomcat组合中设置,以便www.domain1.com指向"webapp1",www.domain2.com指向"webapp2".
Pas*_*ent 10
首先,为两个webapps设置mod_jk工作者.以下示例workers.properties:
workers.tomcat_home=/usr/local/tomcat/apache-tomcat-6.0.20 workers.java_home=/usr/lib/jvm/java-6-sun ps=/ worker.list=worker1,worker2 worker.worker1.type=ajp13 worker.worker1.host=www.domain1.com worker.worker1.port=8009 worker.worker2.type=ajp13 worker.worker2.host=www.domain2.com worker.worker2.port=8009
然后,在apache上设置虚拟主机:
<VirtualHost *:80>
ServerName www.domain1.com
JkMount /* worker1
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain2.com
JkMount /* worker2
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
确保server.xml包含端口8009的未注释的AJP连接器(与工作端口匹配).像这样 :
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Run Code Online (Sandbox Code Playgroud)
最后,配置tomcat主机.像这样的东西:
<Host name="www.domain1.com"
appBase="/path/to/domain1"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Host name="www.domain2.com"
appBase="/path/to/domain2"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
Run Code Online (Sandbox Code Playgroud)
您可能需要进行一些调整,但它应该接近最终结果.