Windows下Tomcat与Apache服务器集成
一、准备工作:
1、apache_2.2.4-win32-x86-no_ssl.msi
2、apache tomcat6.0.18.exe
3、jre1.6.0_03
4、mod_jk-apache-2.2.4.so

二、安装:
1、安装JRE(JDK)
2、Apache安装
3、Tomcat安装
   最好用安装版的,环境配置省了自己配了。
4、JK的安装
把mod_jk-apache-2.2.4.so拷贝到apache的安装位置下的\Apache2\modules\下.

以上安装全部完成后,打开cmd命令提示符,运行
C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe -t
Syntax OK 你将会看到"Syntax OK",表示Apache配置正常

三、配置服务器:
1、配置Tomcat
查找目录下的conf/workers.properties文件,并对比下方文本内容,如有不同以下方内容为准修改。
workers.tomcat_home=E:\server\Tomcat6
#让mod_jk模块知道Tomcat

workers.java_home=E:\jdk\jre1.6.0_03
#让mod_jk模块知道j2sdk

ps=\  #指定文件路径分割符

worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改

2、配置Apache
打开C:\Program Files\Apache Software Foundation\Apache2.2\conf下的httpd.conf,在最后加入下面这段代码并保存。
#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "E:/server/Tomcat6/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "E:/server/Tomcat6/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info

#设置虚拟主机
<VirtualHost localhost>
ServerAdmin localhost
DocumentRoot e:/server/Tomcat6/webapps/ROOT
#您的站点项目所在路径,应与tomcat中的目录设置相同
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.action ajp13
#让Apache支持对.action传送,用以Tomcat解析
</VirtualHost>

再次执行C:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd.exe -t 如果看到"Syntax OK",说明你所有配置无误,双击窗口的托盘中的图标,然后点击Start运行。
在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功


整和过程时遇到的问题:
安装apache时碰到了80端口占用问题,是讯雷占用,把讯雷用到的80端口改成其他的即可。
访问http://localhost/时出现403错误,是是apache 2.2.2的配置文件问题

把配置文件httpd.conf改改即可:
<Directory />
Options FollowSymLinks
AllowOverride None
### Order deny,allow
### Deny from all
Order allow,deny
Allow from all
Satisfy all
</Directory>

参考资料一
参考资料二


方法二
最新版的Apache2.2中,集成了对tomcat支持的ajp——proxy_ajp模块。

确认tomcat的配置文件server.xml中,把ajp1.3链接配置打开。即Define a Coyote/JK2 AJP 1.3 Connector on port 8009部分。

配置httpd.conf方法
先配置文件跟路径,配置监听端口等。
    下面,就说说配置proxy_ajp了。
    #加载解析模块(windows下,或linux采用动态加载模式下需配置。前面我们的linux编译时把下面的模块嵌入到了apache中,所以不用再加载)
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


    #禁止使用proxy_ajp代理的目录:
    ProxyPass /images/ !

    #使用proxy_ajp代理;下面的配置,是把所有目录全用代理    
    ProxyPass / ajp://127.0.0.1:8009/
    ProxyPassReverse / ajp://127.0.0.1:8009/


    配置到现在,重启一下apache,就可通过apache来访问tomcat的服务了。

其他说明

    1、apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的2.0.58版本。
    proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹配(即还不能定义到只对jsp文件起作用)。

    2、因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:
    ——尽量把jsp和静态文件和图片路径分不同的目录来管理;
    ——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请求。
    ——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录),而shtml调用的jsp须在ProxyPass有效控制下。

    参考资料





lunzi   2008-08-28 10:37:43 评论:0   阅读:2195   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog