上一篇中写了关于直接通过Tomcat绑定域名进行访问,如果我们有多个网站需要位于同一台服务器,都想通过域名进行访问,只是用Tomcat是无法实现的。我们这里通过apache的虚拟机配置映射多个Tomcat来实现。
例:www.demo1.cn访问demo1应用;www.demo2.cn访问demo2应用。
第一步:安装,Tomcat,Apache,JK的安装略,请自行google。
第二步:Tomcat配置,打开tomcat的server.xml,结合上一篇Tomcat绑定域名的设置的基础上添加修改。
<!-- 更改原有Connector节点的端口号,因为Apache占用了80端口 -->
<!-- 如果不希望直接通过tomcat的8080端口访问应用,则可以删除掉此Connector配置 -->
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="150"/>
<!-- 增加一个Connector节点,port要唯一不能冲突,协议使用“AJP”和JK进行通信 -->
<Connector
port="8009"
protocol="AJP/1.3"
redirectPort="8443"
maxThreads="3000"
emptySessionPath="true"
enableLookups="false"/>
<!-- Engine增加jvmRoute,在后面配置apache的时候用到-->
<Engine name="Catalina" defaultHost="www.demo1.cn" jvmRoute="tomcat1">
<Host name="www.demo2.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="TestCluster" />
另外的Tomcat配置如下:
<!-- 更改原有Connector节点的端口号,因为Apache占用了80端口 -->
<!-- 如果不希望直接通过tomcat的8080端口访问应用,则可以删除掉此Connector配置 -->
<Connector port="9090"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="150"/>
<!-- 增加一个Connector节点,port要唯一不能冲突,协议使用“AJP”和JK进行通信 -->
<Connector
port="9009"
protocol="AJP/1.3"
redirectPort="8443"
maxThreads="3000"
emptySessionPath="true"
enableLookups="false"/>
<!-- Engine增加jvmRoute,在后面配置apache的时候用到-->
<Engine name="Catalina" defaultHost="www.demo2.cn" jvmRoute="tomcat2">
<Host name="www.demo1.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="demo1" />
第三步:Apache配置
配置httpd.conf,在末尾增加
include "D:\Apache2.2\conf\mod_jk.conf"
配置mod_jk.conf
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
配置workers.properties
worker.list=tomcat1,tomcat2
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=9009
配置httpd-vhosts.conf
NameVirtualHost localhost
<VirtualHost localhost>
DocumentRoot "D:\Tomcat\apache-tomcat-6.0.14(1)\webapps\demo1"
ServerName www.demo.cn
JkMount /*.jsp tomcat1
DirectoryIndex index.html index.jsp
<Directory D:\Tomcat\apache-tomcat-6.0.14(1)\webapps\demo1>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost localhost>
DocumentRoot "D:\Tomcat\apache-tomcat-6.0.14(2)\webapps\demo2"
ServerName www.demo2.cn
JkMount /*.jsp tomcat2
DirectoryIndex index.html index.jsp
<Directory D:\Tomcat\apache-tomcat-6.0.14(2)\webapps\demo2>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
JkMount /*.jsp tomcat1这里面涉及到了apache的转发规则设置,一般我们会把jsp动态的内容交给tomcat进行处理,而js、css、img等静态资源交给apache进行处理。