from my Baidu Space:http://hi.baidu.com/haven_blue/blog
这里只介绍简单的整合,适合刚接触者!废话不说,看例子:
Apache 版本 2.2.17
tomcat 版本 6
JDK版本 6
jk模块版本 mod_jk-1.2.31-httpd-2.2.3
具体的程序安装这里不介绍了,只说怎么整合Apache 和Tomcat!
一,下载jk模块我这里用的是 mod_jk-1.2.31-httpd-2.2.3.so这个模块,点击这里下载! 网上有说,不同的jk版本对应不同的apache版本,不然就不work了!
二,为apache添加jk模块。
1)把下载下来的mod_jk-1.2.31-httpd-2.2.3.so文件放到apache安装目录的modules文件夹下!
2)加载jk模块,这里可以直接修改apache conf文件夹下的httpd.conf文件,也可以创建一个新的配置文件然后在httpd.conf中用Include 命令导入配置文件信息!我在这里使用后者。
在apache安装目录conf文件夹下创建mod_jk.conf文件,内容如下:
#加载jk模块
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
#设置worker文件路径
JkWorkersFile conf/workers.properties
#设置uri处理文件路径(该文件描述文件,目录是否交由tomcat处理,具体交由哪个woker处理)
JkMountFile conf/uriworkersmap.properties
# 设置日志文件路径
JkLogFile logs/mod_jk.log
# 设置日记等级
JkLogLevel info
在apache安装目录conf文件夹下创建workers.properties文件,内容如下:
worker.list=ajp13,status #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
#status worker, listening jk's status
worker.status.type=status
这里我创建了两个worker ajp13和status,status用来查看jk模块状态!若配置成功可以在地址栏输入http://127.0.0.1/jkstatu可以看到jk模块的信息,也可以修改信息!
在apache的conf文件夹下创建uriworkersmap.properties文件,具体内容如下:
/jkstatus=status
#following types will NOT be proccessed by tomcat
!/*.gif=ajp13
!/*.jpg=ajp13
!/*.png=ajp13
!/*.css=ajp13
!/*.js=ajp13
!/*.htm=ajp13
!/*.html=ajp13
!/*.swf=ajp13
#other types will be given to tomcat
/* =ajp13
/servlet=ajp13
文件中/jkstatus=status 表示jkstatus目录下的文件全部交由status这个worker处理,前面带有叹号的行表示该类文件或该目录不交由ajp13这个worker(这里的worker要存在于wokers.properties文件中的worker.list中)处理,没有加叹号的表示交由ajp13 worker处理!
修改apache的httpd.conf文件,在最后加上Include conf/mod_jk.conf,更改DocumentRoot属性,我这里更改为tomcat的webapps的目录为根目录:
DocumentRoot "D:/program files/Apache Software Foundation/tomcat-6/webapps"
同时更改目录访问权限如下:
<Directory"D:/program files/Apache Software Foundation/tomcat-6/webapps">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
这里具体的权限可以自己修改,我这里只是把原来的目录改成红色部分的目录而已!
三,测试!到这里如果你的tomcat的server.xml文件没修改过的话,就可以测试了,重启apache和tomcat后,在地址栏输入http://127.0.0.1如能出现tomcat的页面,那就是成功了!如果修改了tomcat的ajp的监听端口(默认端口8009),那么wokers.properties文件中的port属性也要改成tomcat中的对应端口,当然也可以修改tomcat的ajp端口为8009!ajp监听端口修改位置如下:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
小结:jk是通过ajp协议与tomcat通信的!apache jk模块通过workers.properties 和uriworkersmap.properties 配置load balancing,从而达到load balance(负载均衡)!jk的具体参数说明情况jk的官方文档!
未解决问题:apache通过jk整合tomcat是其实不是很难!但是,整合后出现了问题,整合前PHP文件是可以apache通过php模块是可以访问php文件的,但是整合后,就不能访问php文件了,敲入php后缀的地址就把php文件下载下来!在网上查看了很多资料都没有具体的解决方案,如果你看到了这篇文章而且知道怎么解决,希望留个言!谢谢!
没有评论:
发表评论