apache2.2+tomcat5.5+IIS6虚拟主机多实例配置
最近完成了一个apache整合tomcat和iis实现虚拟主主机多实例的配置,现在整理一下。
需求说明:公司有一个web服务器,共部署了两个web应用(拥有独立的域名),使用了一个端口为80的tomcat5.0,配置了多host方式实现了两个web应用同时运行,但因为业务上的原因,需要将两个web应用分别部署到两个tomcat中。同时也向在服务器上部署一个邮件服务器专门用作企业邮箱,就想到了用apache来实现这个需求。
经过了今天是资料收集,部署和测试,现在已经在测试服务器上部署通过,下面是整理的步骤:
1.基本配置:apache2.2,tomcat5.5,iis6,使用了一个受限制的邮件服务器(测试用)。
2.apache的安装测试 安装apache服务器,使用默认推荐配置参数,使用80端口,启动测试通过(http://127.0.0.1,页面显示It Works,安装成功);
3.安装tomcat5.5服务器共安装两个tomcat服务器,并修改服务端口号(server.xml文件),将配置的tomcat服务器启动,测试是否能够同时正常运行。
4.apache中的tomcat虚拟主机配置4.1apache2.2版本除了增加虚拟主机配置信息外,还需要修改默认目录安全配置,否则无法访问服务:
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Satisfy all </Directory>
修改为:
<Directory /> Options FollowSymLinks AllowOverride None </Directory>
其实就是将后三项配置去掉。
4.2 打开conf/httpd.conf文件,将Include conf/extra/httpd-vhosts.conf前注释去掉。
4.3 在conf/extra/httpd-vhosts.conf文件中进行虚拟主机配置
<VirtualHost *:80> DocumentRoot D:\www\tomcat51\webapps\ROOT ServerName test1.com ServerAlias www.test1.com DirectoryIndex index.html index.html.var index.jsp </VirtualHost> <VirtualHost *:80> DocumentRoot D:\www\tomcat52\webapps\ROOT ServerName test2.com ServerAlias www.test2.com DirectoryIndex index.html index.html.var index.jsp </VirtualHost>
此时,在www目录下,假若有html文件,应该就已经可以根据不同的虚拟主机访问不同的html文件了.
4.4 apache服务器整合tomcat服务器
jk connector 配置jk是tomcat和apache之间的连接器,apache和tomcat通过jk来进行通讯,jk支持多个不同的instance转发。jk的调度是根据workers.properties来的。
在自己的engine 中配置jvmRoute值,和workers.properties对应;
在httpd.conf中
load module:LoadModule jk_module modules/mod_jk-apache.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel info JkRequestLogFormat "%w %V %T %U %q"
conf/workersproperties文件配置:
conf/workerspropertiesworker.list=host2,host1 worker.host1.port=8009 worker.host1.host=host1.com worker.host1.type=ajp13 worker.host1.lbfactor=1 worker.host1.recycle_timeout 120 worker.host2.port=8010 worker.host2.host=host2.com worker.host2.type=ajp13 worker.host2.lbfactor=1 worker.host2.recycle_timeout 120
然后,在每个virtualhost配置里面增加:
<VirtualHost *:80> ServerName www.test2.com .... JkMount /* host1 </VirtualHost>
这是配置tomcat需要拦截的文件。默认全部都由tomcat拦截处理至此,apache整合tomcat基本完毕,其中一个web应用需要配置tomcat数据源,配置只需在tomcat中的server.xml文件的
<host></host>
中间增加:
<Context path="" docBase="${catalina.home}/webapps/creditworld" reloadable="true" debug="0"> <Resource name="jdbc/SQLWEBDB" auth="Container" type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=webdbcredit" username="sa" password="sa" maxActive="150" maxIdle="500" maxWait="-1" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/> </Context>
5.apache中的iis虚拟主机配置 安装iis和邮件服务器,并安装邮件服务器说明,将邮件服务器配置到iis中。
conf/httpd.conf配置修改
LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_module modules/mod_proxy.so
将以上两项配置前的注释去掉。
在conf/extra/httpd-vhosts.conf文件中进行虚拟主机配置,iis邮件服务使用90端口
<VirtualHost *:80> ProxyPreserveHost On DocumentRoot C:\mail\Web Alias /WinWebMail C:\mail\Web ServerName www.mailtest.com DirectoryIndex default.asp index.html index.html ProxyPass / http://127.0.0.1:90/ ProxyPassReverse / http://127.0.0.1:90/ </VirtualHost>
iis邮件服务器也配置完毕,测试通过。
推荐阅读