小鑫博客 - Tomcat
type: channel
link: https://xiazhengxin.name/index.php/tag/tomcat/
items: 在centos上用mod_jk桥接apache与tomcat

在centos上用mod_jk桥接apache与tomcat
type: item
date: 2009-08-07T06:19:26+00:00
description: 最近在搞Volit提供的免费VPS,感觉有了自己的一台24x7不关机的服务器就是不一样，心里很是开心，不过现在的虚拟主机、VPS基本上都是LAMP这样的一个状况，LAMP的这个P就是指php 或者Perl,Python. php这门语言虽然我草草学过，有了那么一点Base,姑且算是一个php starter吧～～ 不过我感觉还是java来的更好一点，不管在写法规范，还是程序思想上，还是java舒服点，于是我便萌发了把java环境搭建到远程的centos系统上。安装Java并不是什么难事，一个命令 yum install java-VERSION-openjdk 即可，这样的好处是环境变量也会自动配置好的，呵呵 然后就是tomcat（当然java的web容器并不止这一个，不过我比较喜欢）,它的二进制程序文件包可以在apache官网下载到。最后就是如何让apache和tomcat之间开始桥接了，我搜索了一下，用到了apache的一个模块,叫mod_jk.so 关于这个mod_jk，着实让我郁闷了一阵，原来它有两个版本，一个是mod_jk2,一个是mod_jk. 刚开始，从名字上看，我想当然的以为mod_jk2是较新版本。可是我怎么也搜索不到下载地址 后来在apache的Archive镜像里面找到了,一看“最后修改时间”，吓死我了，2004年!!后来才知道mod_jk2已经停止开发，mod_jk是现行的版本.最新版本是jk-1.2.28。 下载地址：http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/i586/当然你也可以下载源码进行编译安装,而且呆会用到的workers.properties配置文件的sample也包含在源码包里面。 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz搞清楚这些事情，接下来就好办了，复制mod_jk.so 到 apache下的modules目录，在httpd.conf里面load一下. 然后复制源码包里面的workers.properties文件到apache下的conf目录，打开，依照里面的说明和注释大概也可以看懂mod_jk的工作原理.先指定tomcat的路径 workers.tomcat_home=/usr/local/tomcat 再制定jdk的路径 workers.java_home=/usr 然后就是一个worker的列表 创建一个worker,也可以是多个 worker.list=worker1 (,worker2,worker3...) 指定此worker1的类型 worker.worker1.type=ajp13 指定worker1的端口号 worker.worker1.port=8007 worker.worker1.port=8009 指定worker1的服务器路径 worker.worker1.host=localhost以及下面一系列属性，可以参照 http://tomcat.apache.org/connectors-doc-archive/jk2/jk/workershowto.html#A%20sample%20worker.properties 去配置worker.worker1.lbfactor=50 worker.worker1.cachesize=10 worker.worker1.cache_timeout=600 worker.worker1.socket_keepalive=1 worker.worker1.socket_timeout=300配置好后，在apache的配置文件里面通过 JkWorkersFile /etc/httpd/conf/workers.properties 指定其位置日志路径 JkLogFile /var/log/httpd/mod_jk.log 日志等级 JkLogLevel info 日志时间格式 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 指定增加或去除哪些功能模块 JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 记录请求的格式 JkRequestLogFormat "%w %V %T" 指定哪些目录下的文件要通过tomcat转义，编译并指定列表中的哪个worker JkMount /examples/servlet/* worker1…