在apache 2.2中设置虚拟主机

时间:2012-05-04 21:28:15

标签: tomcat6 apache2.2

我有apache 2.2,mod_jk坐在两个tomcat 6服务器前面。 (所有在同一个盒子上,一个IP地址)我试图将aaa.test.com的请求发送到一个tomcat服务器,将bbb.test.com发送到另一个。我在htpd.conf文件中定义了两个虚拟主机。我遇到的问题是,无论URL如何,所有请求都会转到htpd.conf文件中首先定义的虚拟主机。如果我只定义了那个,那么任何一个都可以正常工作。

htpd.conf中的设置:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile       "C:/Apache/Apache2.2/conf/workers.properties"
JkLogFile           "C:/logs/jkmount/mod_jk.log"
JkLogLevel          info

<VirtualHost *>
    ServerName    aaa.test.com
    JkMountFile   "C:/Apache/Apache2.2/conf/uriworkermap-aaa.properties"
</VirtualHost>

<VirtualHost *>
    ServerName    bbb.test.com
    JkMountFile   "C:/Apache/Apache2.2/conf/uriworkermap-bbb.properties"
</VirtualHost>

workers.properties:

worker.list=aaa,bbb

worker.aaa.type=ajp13
worker.aaa.host=srv1.domain.int
worker.aaa.port=8109


worker.bbb.type=ajp13
worker.bbb.host=srv1.domain.int
worker.bbb.port=8109

如果A是第一个,我在mod_jk.log中看到了这个:

[Fri May 04 15:35:03 2012] aaa aaa.test.com 0.003906

如果我更改订单:

[Fri May 04 15:53:43 2012] bbb bbb.test.com 0.011718

感谢。

1 个答案:

答案 0 :(得分:3)

您可能想要使用NameBasedVirtual Hosting:

所以你的Apache配置应如下所示:

NameVirtualHost *:80
<VirtualHost *:80>
ServerName    aaa.test.com
JkMountFile   "C:/Apache/Apache2.2/conf/uriworkermap-aaa.properties"
</VirtualHost>

<VirtualHost *:80>
ServerName    bbb.test.com
JkMountFile   "C:/Apache/Apache2.2/conf/uriworkermap-bbb.properties"
</VirtualHost>