CentOS 6平台安装配置Apache+Tomcat整合(JK方式)

Apache 1897℃

Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows、Unix、Linux 等操作系统中运行,是最流行的Web服务器软件之一。Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持 PHP 页面)。Apache Tomcat 是由 Apache 软件基金协会与 Sun 公司联合开发的一款Web服务器,它除了支持HTML等静态页面外,还支持JSP、Servlet 。在相同的运行环境下,Tomcat 对静态页面的反应速度没有 Apache 灵敏,整合 Apache 与 Tomcat 能使系统运行于一个良好环境下,提高系统效率。Apache本身缺乏处理JSP/Servlet的功能,为了能够处理对JSP/Servlet的请求,必须使用JSP/Servlet容器(如Tomcat)。

在开始之前,你的服务器已经安装了apache和tomcat,可参考:编译安装配置apache 、安装配置tomcat

1.编译生成mod_jk.so模块

Apache之所以能够和Tomcat通讯就是依靠了tomcat-connectors(连接器),官方下载地址。而这个东西通讯协议就是AJP/1.3 ,这也是为什么我们每次启动Tomcat的时候除了我们常见的http通讯端口8080,但还有一个端口AJP 8009。其实多启动的这个8009端口就是为了与Apache通讯使用的,如果我们用不到Apache服务器那我们完全可以把Tomcat加载启动AJP服务关闭掉,减少内存占用提高效率。编译安装tomcat-connectors完成后会生成mod_jk.so,即Apache与Tomcat的连接模块,此模块附带提供集群和负载均衡的功能。JK分为两个版本1.x和2.x,其中2.x并不是最新的版本,它是JK的另外一个分支,后来没有继续开发,2.x版本已经废弃,通常使用1.x的版本。官方下载地址。

#需要先安装依赖包,否则会报错
yum install glibc-headers gcc-c++ -y
wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.43-src.tar.gz
tar zxvf tomcat-connectors-1.2.43-src.tar.gz 
cd tomcat-connectors-1.2.43-src/native/
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
cp apache-2.0/mod_jk.so /usr/local/apache2/modules/

2.添加mod_jK配置文件

vim /usr/local/apache2/conf/mod_jk.conf
#载入mod_jk.so
LoadModule jk_module /usr/local/apache2/modules/mod_jk.so
# 指出mod_jk模块工作所需的工作文件workers.properties的路径
JkWorkersFile /usr/local/apache2/conf/workers.properties
#指定JK日志文件路径
#JkLogFile /var/log/httpd/mod_jk.log
#指定日志记录级别
JkLogLevel info
#指定日志格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
#指定请求日志格式
JkRequestLogFormat "%w %V %T"
#把匹配的页面转发到指定服务器,worker1在workers.properties中配置
JkMount /servlet/* worker1
JkMount /*.jsp worker1
JkMount /*.do worker1
# 指定apache解析的静态页面路径
JkAutoAlias /usr/local/apache2/htdocs

3.添加mod_jK服务器配置文件

vim /usr/local/apache2/conf/workers.properties
#定义名为aworker1的工作程序
worker.list=worker1
#设置worker1的属性
worker.worker1.port= 8009
worker.worker1.host= 127.0.0.1
worker.worker1.type= ajp13
worker.worker1.lbfactor= 1
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1 
worker.worker1.socket_timeout=300

4.修改apache配置文件

vim /usr/local/apache2/conf/httpd.conf
#增加包含mod_jk.conf的语句
Include /usr/local/apache2/conf/mod_jk.conf

5.创建测试文件

#在tomcat默认web路径下创建html
vim /usr/local/tomcat/webapps/ROOT/test.html
This is tomcat's html page
#在tomcat默认web路径下创建jsp
vim /usr/local/tomcat/webapps/ROOT/test.jsp
<%@page language="java" import="java.util.*"%>
this is tomcat's jsp page <%out.println(new Date());%>
#在apche默认web路径下创建html
vim /usr/local/apache2/htdocs/test.html
This is apache's html page
#在apache默认web路径下创建jsp
vim /usr/local/apache2/htdocs/test.jsp
<%@page language="java" import="java.util.*"%>
this is apache's jsp page <%out.println(new Date());%>

6.测试

重启tomcat和apache后(如果启动不起来会在相应日志里打印,查询并排除即可),在浏览器地址栏输入http://<server IP>/test.jsp,可以看到使用的是tomcat下的test.jsp文件,没有使用apahce下的。在浏览器地址栏输入http://<server IP>/test.html,可以看到使用的apahce下test.html文件,没有使用tomcat下的。关于项目部署,从测试效果来看,在apahce服务器下只需放html,js,css,img等文件,在tomcat下放整个war包即可。

转载请注明:零五宝典 » CentOS 6平台安装配置Apache+Tomcat整合(JK方式)