配置 Apache + JK +Tomcat
刚完成的一个项目需要用到 Apache ,所以在工作中自己配置了一把,虽然网上这样的资料搜索一下有很多,不过在实际的操作过程当中还是遇到了一些问题,在此略作记录.在 Tomcat 前面加一个 Apache 的主要好处有3点:
1.提升对静态文件的处理性能
2.利用 Web 服务器来做负载均衡以及容错
3.无缝的升级应用程序
4. 利用丰富的 Apache 自身拥有的各种模块.
Apache的安装
官方地址: http://httpd.apache.org/
Windows: 在window 下安装还是比较简单的,一路setup 即可.
Linux: 在linux 下面安装需要自己编译一下,所以安装环境中需要有编译工具.
安装步骤如下:
1.下载最新的源码包到环境中(以2.2.13为例), 解压到当前目录.
2. 解压后的包名一般为 [httpd-*.*.** ] ('*'为版本号这里为 httpd-2.2.13 ),进入此包.
3. 需要执行 ./configure 对源码进行配置, 这里主要的2个参数是指定安装路径 与 指定初始化的模块了.
为了省事我们可以安装所有的模块,具体模块的取舍情况根据个人需要而定,可以参考 Apache 参考文档安
装编译部分.
样例
./configure --prefix=/opt/program/apache2 --enable-mods-shared=all
--prefix 参数指定了安装的路径.
--enable-mods-shared 指定了安装的 Apache 模块 all 为所有模块都安装.
4. 待 configure 执行完成后, 执行 [ make install ]即可以进行安装,这里会根据具体设置稍微慢一些.
安装完成后会在 --prefix 指定的目录中看到 安装好的 Apache.
5. 可以启动 Apache 进行一下验证.
Tomcat 安装
官方网址 http://tomcat.apache.org/
Windows 和 Linux 直接解压即可
JK 安装
官方网址 http://tomcat.apache.org/connectors-doc/
Windows: 在window下可以直接下载已经编译好的 二进制版本,需要注意的是,JK的下载二进制版本都会
在下载文件名种标明一个支持的 Apache 版本,针对此文中Apache 版本(2.2.13),JK对应的文件
名称为,[mod_jk-1.2.28-httpd-2.2.3.so ], 虽然版本号不是一一对应的但经过我的试用是可
以直接使用在 apache-2.2.13 版本上面.
Linux : Linux下 就不是那么幸运的了,虽然官方上面也有对应的二进制版本下载,当经过测试之后(至少在我的
linux) 上面是不能正常启动,报的错误片段如下:
写道
httpd: Syntax error on line 107 of /opt/apache2/conf/httpd.conf: Cannot load /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so into server: /opt/apache2/modules/mod_jk-1.2.28-httpd-2.2.X.so: wrong ELF class: ELFCLASS32
所以还是要自己手动编译一下,这个也是比较简单滴,步骤如下:
1.下载最新的源码包到本地,解压后进入native 目录.
2. 配置源码,需要指定 Apache 中的 apxs 程序的路径.
./configure --with-apxs=/opt/apache2/bin/apxs
3.make 一下如果没有错误提示的话,在native 目录下会生成 apache-2.0 文件夹,mod_jk.so就在这个
文件下.
安装 JK : 在获得 mod_jk.so 之后将它 copy 到 apache 安装目录下的 modules文件夹.
修改 Apache 的 配置文件(httpd.conf),使Apache 启动的时候加载 JK 模块.
写道
#load jk
LoadModule jk_module modules/mod_jk.so
启动 Apache 测试一下是否有问题.
配置 Apache
1. 测试 Apache 与Tomcat 单独启动 没有任何问题.
2.在 Apache 的配置文件目录(conf) 新建文件workers.properties 内容如下:
#
# workers.properties
#
# list the workers by name
# 指定起作用的 Tomcat 实例 多个的话用 ‘,’ 分隔
worker.list=s1,jkstatus
# port 参数指定接收请求的Tomcat 端口, 注意这个端口为Tomcat 配置的 AJP/1.3 的端口.
worker.s1.port=8020
#host 指定了 Tomcat 监听的IP地址
worker.s1.host=127.0.0.1
#协议类型
worker.s1.type=ajp13
worker.jkstatus.type=status
3.修改 Apache 的配置文件 在文件的最底部 加入一些 JK参数,内容如下
#
# Configure mod_jk
#
JkMount /Tomcat_Request/* s1 #此参数指定那些请求会被Apache 转给Tomcat 处理.
JkWorkersFileconf/workers.properties
JkLogFile logs/mod_jk.log
JkRequestLogFormat "%w %V %T"
JkLogLevel info
4.启动 Apache 后可以向 Apache 监听的端口发送请求 在Tomcat 中的部署的工程,一次来测试是否成功.
总结
从我的亲身经历来看,如果是简单的配置的话,是比较容易上手的,我在配置的过程当中有2个地方稍微卡了下,第一个是
在Linhux 下编译 Apache 与 JK 的时候,有些触头,因为要在Linux下编译源代码,不过在实际操作之后才发现原来是那么
简单,第二点就是最后配置JK 的时候那个 [worker.*.port ]参数配置,我一直都是向 Apache HTTP/1.1发送.改过来之后一切就OK了 ,其他的问题就没有了.
需要说明的是 此篇文档主要目的是说明 Apache + JK + Tomcat 的配置说明, 所以在此只是简单介绍了Apache 及JK 的一些必要参数,而且是相当粗略的. 所以如果你在实际的生产环境当中可以根据自己需要进行更多配置.尤其是对于Apache 的配置 是需要下一些功夫来进行研究的.
参考资源
Apache2.2 文档中文版 -- 非常感谢 金步国 同志
http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html
Apache HTTP Server 与 Tomcat 的三种连接方式介绍
http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/
JK HowTo
http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
Apache 2.2 Docuemnt
http://httpd.apache.org/docs/2.2/
页:
[1]