gggggds 发表于 2016-12-30 10:36:38

配置 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]
查看完整版本: 配置 Apache + JK +Tomcat