不同虚拟主机的主机/服务器名称相同

时间:2012-06-01 11:12:11

标签: tomcat7 apache mod-jk

我在3个Tomcat实例中部署了3个应用程序

http://host:8080/app0
http://host:8081/app1
http://host:8082/app2

我将workers.properties作为

worker.list = worker1,worker2,worker3

# Set properties for worker 'example' (ajp13)

worker.worker1.host=host
worker.worker1.port=8009
worker.worker1.type=ajp13

# Set properties for worker 'example' (ajp13)

worker.worker2.host=host
worker.worker2.port=8019
worker.worker2.type=ajp13

# Set properties for worker 'example' (ajp13)

worker.worker3.host=host
worker.worker3.port=8029
worker.worker3.type=ajp13

我的httpd.conf应该如何?所有虚拟主机都可以具有相同的服务器名称,如下所示

# app0 instance virtual host
<VirtualHost *:80>
ServerName host
DocumentRoot TOMCAT_HOME"\Tomcat Instance 1\webapps"
ErrorLog logs/app0.log
JkMount /app0 worker1
</VirtualHost>

# app1 instance virtual host
<VirtualHost *:80>
ServerName host
DocumentRoot TOMCAT_HOME"\Tomcat Instance 2\webapps"
ErrorLog logs/app1.log
JkMount /app1 worker2
</VirtualHost>

# app2 instance virtual host
<VirtualHost *:80>
ServerName host
DocumentRoot TOMCAT_HOME"\Tomcat Instance 2\webapps"
ErrorLog logs/app2.log
JkMount /app2 worker3 
</VirtualHost>

任何人都可以帮助我吗?如果我使用mod代理,我间歇性地得到502代理错误,所以想到使用mod jk。

1 个答案:

答案 0 :(得分:1)

我不确定Tomcat的一部分,但这就是我要做的事情

忘记不同的端口(如果你愿意,你可以这样做,但如果你想要做的只是设置虚拟主机,则没有必要)

访问

http://host/app0
http://host/app1
http://host/app2

将httpd.conf修改为

<VirtualHost *>
  ServerName host
  DocumentRoot TOMCAT_HOME"\Tomcat Instance 2\webapps"
  Alias /app0 APP0_ROOT_HERE
  Alias /app1 APP1_ROOT_HERE
  Alias /app2 APP2_ROOT_HERE
</VirtualHost>

此配置将处理具有服务器名称“host”的所有请求,如果它与任何别名匹配,将使用指示的文档根目录。如果不匹配别名,则它将使用默认文档根。不确定单独记录但是应该可以,请查看http://httpd.apache.org/docs/2.2/vhosts/name-based.html