日期:2014-05-17  浏览次数:20773 次

apache2.2.21+tomcat6+mod_jk在Windows中配置多域名对应单独IP虚拟主机

需求:

多个域名可以指向唯一IP的80端口,并且每个域名对应单独的Tomcat实例运行的web项目。

假设有两个域名:www.test1.com www.test2.com

都指向本机ip:192.168.0.66

分别对应两个 tomcat-6.0.32的默认docs项目和 tomcat-6.0.33的默认examples项目。

?


环境:

系统:Windows XP

Apache2.2.21:安装文件:httpd-2.2.21-win32-x86-no_ssl.msi

Tomcat:apache-tomcat-6.0.32、apache-tomcat-6.0.33

Tomcat-Connectors:tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip

JDK:jdk1.6.0_16


安装:

apache使用80端口;

Tomcat使用的绿色解压缩包,注意端口配置,不用冲突;

先保证直接访问http://localhost 能看到apache主页,两个Tomcat都能正常启动。


配置:

1. 拷贝mod_jk.mo到<apache_home>/modules目录下。


2. 修改<apache_home>/conf/httpd.conf配置文件:


httpd.conf 文件最后增加以下内容

NameVirtualHost *:80

<VirtualHost *:80>
	ServerName www.test1.com
	ServerAlias test1.com *.test1.com
	DocumentRoot "D:\apache-tomcat-6.0.32\webapps\docs"
	DirectoryIndex index.html index.htm index.jsp
	JkMount /servlet/* test1 
	JkMount /*.jsp test1 
	JkMount /*.htm test1 
	JkMount /*.html test1 
	JkMount /*.action test1 
	JkMount /* test1
</VirtualHost>
<Directory "D:\apache-tomcat-6.0.32\webapps\docs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


<VirtualHost *:80>
	ServerName www.test2.com
	DocumentRoot "D:\apache-tomcat-6.0.33\webapps\examples"
	DirectoryIndex index.html index.htm index.jsp
	JkMount /servlet/* test2 
	JkMount /*.jsp test2 
	JkMount /*.htm test2 
	JkMount /*.action test2 
	JkMount /* test2
</VirtualHost>
<Directory "D:\apache-tomcat-6.0.33\webapps\examples">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
?

3. 创建 <apache_home>/conf/workers.properties文件

?

#workers.tomcat_home=D:\apache-tomcat-6.0.33 #让mod_jk模块知道tomcat的位置
#workers.java_home=D:\Java\jdk1.6.0_16\jre #让mod_jk模块知道jre的位置
#ps=\
worker.list=test1,test2#模块版本
worker.test1.port=8009 #工作端口,若没占用则不用修改
worker.test1.host=www.test1.com #本机,若上面的Apache主机不为localhost,作相应修改
worker.test1.type=ajp13 #类型
worker.test1.lbfactor=1 #代理数,不用修改

worker.test2.port=8109 #工作端口,若没占用则不用修改
worker.test2.host=www.test2.com #本机,若上面的Apache主机不为localhost,作相应修改
worker.test2.type=ajp13 #类型
worker.test2.lbfactor=1 #代理数,不用修改
?

注:开头注释的三行,网上帖子