|
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
#设置虚拟主机 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解析
再次执行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改改即可: Options FollowSymLinks AllowOverride None ### Order deny,allow ### Deny from all Order allow,deny Allow from all Satisfy all
参考资料一 参考资料二
方法二 最新版的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有效控制下。
参考资料 |
|
|