一、httpd与单个tomcat集成
2、通过下面路径下载tomcat6及tomcat connector.
http://mirror.bit.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz
解压缩安装
$ gzip -d tomcat-connectors-1.2.41-src.tar.gz
$ tar xvf tomcat-connectors-1.2.41-src.tar
$ cd tomcat-connectors-1.2.41-src/native/
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs
$ make
$ cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
$ gzip -d apache-tomcat-6.0.44.tar.gz
$ tar xvf apache-tomcat-6.0.44.tar
$ mv apache-tomcat-6.0.44 /usr/local/tomcat6 #确定安装了jdk或jre且配置了环境变量
3、配置
$ cd /usr/local/apache2/conf
$ vim workers.properties
添加如下内容:
worker.list=tomcat1 #tomcat节点,如多个用","分割
worker.tomcat1.type=ajp13 #ajpv13协议与Tomcat进程通讯
worker.tomcat1.host=localhost #IP
worker.tomcat1.port=8009 #ajp端口
worker.tomcat1.cachesize=10 #指定缓存大小
worker.tomcat1.cache_timeout=600 #指定worker1的cache中保留一个打开的socket的时间
worker.tomcat1.socket_keepalive=1 #KEEP_ALIVE信息,心跳信息
worker.tomcat1.socket_timeout=300 #socket连接超时
$ vim mod_jk.conf
添加如下内容:
LoadModule jk_module modules/mod_jk.so
#workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
#指定jk的日志输出文件
JkLogFile /usr/local/apache2/logs/mod_jk.log
#指定日志级别
JkLogLevel info
#指定日志输出的时间戳格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#JkOptions指示发送给SSL密钥大小
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#指定日志中时间戳后面的内容:%w:工作的tomcat实例 %V:目标ip %T:耗时
JkRequestLogFormat "%w %V %T"
#路径模式指定给特定节点处理
JkMount /servlet/* tomcat1
JkMount /*.jsp tomcat1
$ vim httpd.conf
在文件最后添加一行
Include /usr/local/apache2/conf/mod_jk.conf
4、启动
$ sh /usr/local/tomcat6/bin/startup.sh
$ sh /usr/local/apache2/bin/apachectl start
浏览器访问80 和 8080端口看到的页面应该是一样的
二、apache与tomcat集群
1、准备好环境,实例为1*apache + 2*tomcat
2、修改apache httpd配置
$ cd /usr/local/apache2/conf
$ vim workers.properties
修改为如下内容:
worker.list=controller
#指定worker1使用ajpv13协议与Tomcat进程通讯
worker.worker1.type=ajp13
#指定worker1的ip
worker.worker1.host=localhost
#指定worker1的端口
worker.worker1.port=8009
#指定worker1的缓存大小
worker.worker1.cachesize=10
#指定worker1的cache中保留一个打开的socket的时间
worker.worker1.cache_timeout=600
#心跳检测
worker.worker1.socket_keepalive=1
#socket连接超时是长
worker.worker1.socket_timeout=300
#负载均衡因子
worker.worker1.lbfactor=1
worker.worker2.type=ajp13
worker.worker2.host=10.202.10.25
worker.worker2.port=8009
worker.worker2.cachesize=10
worker.worker2.cache_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=300
worker.worker2.lbfactor=1
worker.controller.type=lb
worker.controller.balanced_workers=work1,worker2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
$ vim mod_jk.conf
修改为如下内容:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/apache2/conf/workers.properties
#指定workers.properties的位置
JkLogFile /usr/local/apache2/logs/mod_jk.log
#指定jk的日志输出文件
JkLogLevel info
#指定日志级别
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#指定日志输出的时间戳格式
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkOptions指示发送给SSL密钥大小
JkRequestLogFormat "%w %V %T"
#指定日志中时间戳后面的内容:%w:工作的tomcat实例 %V:目标ip %T:耗时
JkMount /servlet/* controller
JkMount /*.jsp controller
3、修改tomcat配置
$ vim /usr/local/tomcat6/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
...
4、分别启动apache 跟 两个tomcat