1、 Tomcat & apache 整合操作笔记 By seagull 二〇〇九年二月四日星期三 1 关键字 发布目录 jk2.conf workers.properties 2 Tomcat & apache 整合的意义 尽管Tomcat可以作为独立的Web服务器运行,但是Tomcat的Web功能远远没有Apache强大,所以在实际应用中通过 mod_jk2 连接器将 Apache 以及 Tomcat 整合。整合之后,Apache 负责处理静态页面,而 Tomcat 则负责处理动态页面。 3 软件准备 软件 说明 操作系统 Red Hat Enterpri
2、se Linux AS release 4 (Nahant Update 8) x86_64 (所有组件默认全部安装) Tomcat版本 Tomcat5.5.35 apache Apache/2.2.3(系统自带) 连接器 mod_jk-1.2.23-apache-2.2.x-linux-i686.so http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.23/mod_jk-1.2.23-apache-2.2.x-linux-i686.so jk2模块通过http
3、d把jsp等的web请求转发给tomcat,实现不同的文件由不同的解释器解析。注意不同的apache版本要选择不同的连接器版本。 如果第一步的二进制文件有问题,可以先编译一下模板 Jdk版本 "1.6.0_31" Tomcat 需要根据环境变量设置找到 JDK的安装目录,否则不能正常启动和停止, 4 连接器安装与配置 4.1 JK 安装 (整合apache tomcat) # tar zxvf tomcat-connectors-1.2.32-src.tar.gz #cd tomcat-connectors-1.2.32-src/native # .
4、/configure --with-apxs=/usr/sbin/apxs -with-java-home=/usr/local/java # make && make install 4.2 将/etc/httpd/conf/ workers.properties /etc/httpd/conf.d/ jk2.conf 两个文件按如下内容配置 配置文件/etc/httpd/conf.d/ jk2.conf,添加如下记录 cat workers.properties worker.list=node1 workers.java_home=/usr/local/java worke
5、r.node1.type=ajp13 worker.node1.host=localhost worker.node1.port=8009 配置/etc/httpd/conf/ workers.properties,添加如下记录 cat jk.conf # Load mod_jk module # Update this path to match your modules location LoadModule jk_module modules/mod_jk.so # Where to find workers.properties # Update th
6、is path to match your conf directory location (put workers.properties next to httpd.conf) JkWorkersFile /etc/httpd/conf/workers.properties # Where to put jk logs # Update this path to match your logs directory location (put mod_jk.log next to access_log) JkLogFile /var/log/httpd/mod_jk.log
7、 # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat set the request format
8、JkRequestLogFormat "%w %V %T" # Send everything for context /examples to worker named worker1 (ajp13) #JkMount /examples/* worker1 JkMount /*.jsp node1 4.3 Apache 和 Tomcat发布目录设置 要实现 Apache 和 Tomcat 整合,需要设置 Apache 和 Tomcat 的主目录一致,现定于发布目录是:/opt/app/,配置如下: 4.3.1 Tomcat 配置 在service.xml文件
9、中添加:
10、/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/jdk [root@localhost conf]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Us
11、ing CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: 5.1 测试 /usr/jdk 最后在主目录/var/www/html 中创建一个名为 test.jsp 的文件,内容如下: [root@localhost ~]# cd /var/www/html/ [root@localhost html]# vi test.jsp [root@localhost html]# cat test.jsp Hel
12、lo! The time is <%=new java.util.Date() %> 完成之后,可从客户端访问服务器进行测试:http://192.168.1.200/test.jsp,若出现下面的页面,证明 Apache+Tomcat 的整个整合过程成功! Hello! The time is Sun Apr 08 10:59:36 CST 2007 5.2 Jk日志、进程分析及 [root@KDSW-TEST1 httpd]# tail -f mod_jk.log [Thu Feb 05 16:58:28 2009] mengjj 221.204.252.188 0.001
13、775 [Thu Feb 05 16:58:28 2009] mengjj 221.204.252.188 0.002083 [Thu Feb 05 16:58:29 2009] mengjj 221.204.252.188 0.001841 [Thu Feb 05 16:58:29 2009] mengjj 221.204.252.188 0.001929 [Thu Feb 05 16:58:30 2009] mengjj 221.204.252.188 0.001822 [Thu Feb 05 16:58:30 2009] mengjj 221.204.252.188 0.001
14、834 [Thu Feb 05 16:58:30 2009] mengjj 221.204.252.188 0.001462 [Thu Feb 05 16:58:39 2009] mengjj 221.204.252.188 0.002171 [Thu Feb 05 16:58:55 2009] mengjj 221.204.252.188 0.002472 [Thu Feb 05 17:26:28 2009] mengjj 221.204.252.188 0.001697 [root@KDSW-TEST1 httpd]# lsof -i :8009 COMMAND PID
15、 USER FD TYPE DEVICE SIZE NODE NAME java 26574 seagull 11u IPv6 31920824 TCP *:8009 (LISTEN) java 26574 seagull 21u IPv6 31920827 TCP localhost.localdomain:8009->localhost.localdomain:40696 (ESTABLISHED) java 26574 seagull 23u IPv6 31920958 TCP localho
16、st.localdomain:8009->localhost.localdomain:40697 (ESTABLISHED) java 26574 seagull 24u IPv6 31921013 TCP localhost.localdomain:8009->localhost.localdomain:40698 (ESTABLISHED) java 26574 seagull 25u IPv6 31921016 TCP localhost.localdomain:8009->localhost.localdomain:40699 (ES
17、TABLISHED) java 26574 seagull 26u IPv6 31921024 TCP localhost.localdomain:8009->localhost.localdomain:40700 (ESTABLISHED) java 26574 seagull 27u IPv6 31921027 TCP localhost.localdomain:8009->localhost.localdomain:40701 (ESTABLISHED) java 26574 seagull 28u IPv6 319210
18、48 TCP localhost.localdomain:8009->localhost.localdomain:40702 (ESTABLISHED) java 26574 seagull 29u IPv6 31921051 TCP localhost.localdomain:8009->localhost.localdomain:40703 (ESTABLISHED) httpd 26627 seagull 20u IPv4 31920957 TCP localhost.localdomain:40696->localhost.
19、localdomain:8009 (ESTABLISHED) httpd 26628 seagull 20u IPv4 31921012 TCP localhost.localdomain:40697->localhost.localdomain:8009 (ESTABLISHED) httpd 26629 seagull 20u IPv4 31921015 TCP localhost.localdomain:40698->localhost.localdomain:8009 (ESTABLISHED) httpd 26630 seagul
20、l 20u IPv4 31921023 TCP localhost.localdomain:40699->localhost.localdomain:8009 (ESTABLISHED) httpd 26631 seagull 20u IPv4 31921026 TCP localhost.localdomain:40700->localhost.localdomain:8009 (ESTABLISHED) httpd 26632 seagull 20u IPv4 31921047 TCP localhost.localdoma
21、in:40701->localhost.localdomain:8009 (ESTABLISHED) httpd 26633 seagull 20u IPv4 31921050 TCP localhost.localdomain:40702->localhost.localdomain:8009 (ESTABLISHED) httpd 26634 seagull 20u IPv4 31921053 TCP localhost.localdomain:40703->localhost.localdomain:8009 (ESTABLISHED)
22、[root@KDSW-TEST1 httpd]#
6 FAQ
6.1 在虚拟主机环境下配置的情形的处理
[root@nxt_web conf.d]# cat .host
23、og /data/nxtweb/
CustomLog "|/usr/local/sbin/cronolog /data/nxtweb/ combined
AddDefaultCharset utf-8
24、Directory>
ScriptAlias /cgi-bin/ "/data/nxtweb/
25、PassReverse /seagull http://localhost:38080/seagull
[root@nxt_web conf.d]#
6.2 一个apache+多个tomcat(tomcat集群配置)的情形时的处理
6.3 不同的apache版本问题
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.18/mod_jk-apache-2.0.46-linux-i686.so
http://archive.apache.or 26、g/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.18/mod_jk-apache-2.0.49-linux-i686.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.18/mod_jk-apache-2.0.52-linux-x86_64.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.25/i386/mod_jk-1.2.25-httpd-2.0.59.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.25/i386/mod_jk-1.2.25-httpd-2.2.4.so
等等,不同apache 及32 64 位系统对应不同的版本
6.4 Jk jk2的区别
6.5 Jk源码编译代替用二进制包安装的处理
第 8 页 共 8 页






