使用mod_jk从HTTPD转发请求至Tomcat
mod_jk是Apache HTTPD用来转发Tomcat服务的工具,也可以用于部署Tomcat群集,本文简单介绍其使用方法。
首先,确保你的机器上已经安装了HTTPD和Tomcat (Tomca6或7都可以)。然后从Apache的网站上下载mod_jk:http://tomcat.apache.org/download-connectors.cgi
然后编译并安装,最终确保mod_jk在你的httpd中正确安装了:
-bash-4.2$ ls httpd/modules/mod_jk.so httpd/modules/mod_jk.so
你也可以用所使用的Linux自带的包管理器来安装所需的包,比如在Fedora Linux下面可以使用yum来安装httpd和mod_jk:
-bash-4.2$ yum install httpd mod_jk
安装完成后,我们需要编辑httpd的配置文件:
-bash-4.2$ vi httpd/conf/httpd.conf
在里面配置mod_jk:
# 加载mod_jk模块,注意路径要指向你的安装位置LoadModule jk_module httpd/modules/mod_jk.so# mod_jk的配置文件,我们一会要撰写这个文件JkWorkersFile httpd/conf/workers.properties# 设置tomcat服务的转发url:当用户通过httpd访问/*# 地址时,请求会被转发到实际提供服务的tomcatJkMount /* worker1#设置mod_jk的日志输出级别为debug,方便调试JkLogLevel debug
以上是httpd的配置,接下来我们要撰写mod_jk的配置。在上面的httpd.conf中,我们指定mod_jk的配置文件为workers.properties,我们现在来写这个文件,内容如下:
worker.list=worker1worker.worker1.type=ajp13worker.worker1.host=10.211.55.12
上面的host要指向你的tomcat绑定的ip地址。注意type是ajp13,这个是tomcat与mod_jk连接默认使用的模块,在tomcat[67]中已经默认配置好了,以下是我的tomcat的配置文件server.xml的内容:
<!-- Define an AJP 1.3 Connector on port 8009 --><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
配置完成后,启动tomcat和httpd,应该可以从httpd的log中看到连接器生效了:

此时首先访问tomcat的8080端口,试试看服务是否生效:
http://10.211.55.12:8080/index.html
注意“10.211.55.12”是我的IP地址,你的环境中Tomcat所绑定的IP地址会不一样,需要你自己保证正确性。
下面是截图:

接下来我们试试看通过httpd来访问tomcat服务,看看请求是否被正确转发:
http://10.211.55.12/index.html
注意httpd服务于80端口。下面是截图:

可以看到请求被mod_jk正确转发了。