本文所要用到的软件:
Apache Http Server 2.2
Tomcat 6
mod_jk_apache2.2.4.so
这个配置的主要工作就是连接Apache与Tomcat,因此,配置工作也分为两部分,一部分是在Tomcat端进行的,另一部分则是在Apache端进行。
Tomcat端的配置:
在Tomcat上进行的配置比较简单,无非是修改监听的接口和协议。
具体步骤:
打开server.xml,找到下面这一行,如果这一行被注释掉(在<!– 与 –>内),那么去掉注释,最终的结果看起来也能更改是这样: <!–define an ajp1.3 connector on port 8009–> <Connector port=”8009″ protocol=”AJP/1.3″ rediredt=”8443″ />
Connector有以下这些属性:
- enableLookups:如果这个值为true,那么当调用request.getRemoteHost()时将返回具体的远程计算机名;如果设为false,则这个值将变为String形式的ip地址。因为性能原因,这个属性的默认值为false
- redirectPort:若这个值设为true,那么当请求符合<security-constraint>需要SSL传输时,Tomcat将会把这个request转发到这个端口。
- scheme:如果使用SSL进行传输并且这个值为true,那么request.getScheme()将返回https,否则返回http。默认值为http
- security:如果这个值为true,并且只用ssl进行传输,那么当调用request.isSecure()时,将返回true,否则返回false。
protocol:这里需要将其设为AJP/1.3,表示使用AJP/1.3协议与Apache进行通信
Apache端的配置
为了与Tomcat进行通信,Apache需要使用一个插件。目前有两种插件可以使用,一个是mod_jk, 另一个是mod_proxy。这里我们使用mod_jk,这里需要注意的是mod_jk的版本。
- 下载mod_jk,将其重命名为mod_jk.so(仅仅是为了方便),将其放入Apache安装目录下的modules文件夹中。
- 修改httpd.conf
创建worker.properties。创建一个worker.properties文件,用记事本打开,在里面添加下面这些内容:
下载并配置mod_jk
mod_jk可以到http://tomcat.apache.org/download-connectors.cgi下载。在下载mod_jk时,首先要找到你的操作系统所对应的目录(如win32的http://apache.freelamp.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/),然后在根据下面的说明下载对应Apache版本的mod_jk。这里我使用的是mod_jk-1.2.28-httpd-2.2.3.so
给Apache添加加载mod_jk.so的指令(通过修改httpd.conf)
打开位于Apache安装目录下conf文件夹,找到httpd.conf,用记事本打开。在文件的最后添加如下指令:
LoadModule jk_module modules/mod_jk.so
保存httpd.conf,重启Apache,即可加载这个模块。对于mod_jk.so,还有下面这些属性需要进行配置:
- JkWorkersFile 指定worker.properties文件的位置,如:conf/worker.properties
- JkLogFile 指定mod_jk的log文件的位置,如logs/httpd/mod_jk.log
- JkLogLevel 指定mod_jk的log等级,有info,error,debug三个等级,其中,info的log信息最少,debug最多
- JkMount <URL to match> <Tomcat worker name> 指定那些url请求将被转发给Tomcat。<URL to match>使用的是正则表达式,Tomcat worker name则在worker.properties文件中进行匹配
在这里,我们必须添加的属性是JkWorkersFIle和JkMount,我使用的配置如下:
JkWorkersFile conf/worker.properties
JkMount /examples/jsp/* worker1
在JkWorkersFile指定的目录下添加一个worker.properties文件
并在里面添加如下内容:
worker.list = worker1
worker.worker1.type=ajp13
worker.worker1.host=192.168.9.182
这里worker.worker1.host属性必须设为你自己的ip地址
测试Apache与Tomcat是否连接成功
重启Apache,打开http://localhost/examples/jsp/,如果出现的页面与http://localhost:8080/examples/jsp一样,说明配置成功