一、架构:
users --> apache web server + mod_jk -->tomcat instance
1、mode_jk介绍:
它是早期mod_jserv的替代品,是一个全新负责处理Apache和Tomcat通讯的Apache插件。
Apache加载jk模块,通过ajp13(Apache jServ Protocol version 1.3)协议与tomcat通讯;
2、apache + JK 负载均衡器作用?
1)它实现了负载均衡算法,通过将请求分发到不同的服务器来达到高可用性和高效的处理能力;
2)监控集群中每一个tomcat的健康状态,来防止将请求转发到一个失败的节点;
3)它会使用“会话粘滞”技术以确保来自同一个用户的请求会被转发到同一个服务器;
二、环境搭建:
1、Apache 2.2.14 下载地址:http://httpd.apache.org/,如可以通过访问 "http://localhost"来判断apache是否安装成功。如果提示80端口被占用,则关闭掉类似于迅雷或其他应用程序,可能是这些应用程序占用了80端口;
2、Tomcat 5.5 绿色版 下载地址:http://tomcat.apache.org/download-55.cgi
由于是集群,这里我们安装2个tomcat,并命名tomcat根目录分别为tomcata和tomcatb,如果使用默认配置,就不能同时启动两个tomcat了,我们必须修改其中一个tomcat的配置,例如修改tomcatb。找到tomcatb的conf目录的server.xml,将其中出现80位置全部修改为90(此时html端口变为9080,而ajp协议变为9009,应用程序主要是通过html端口访问,而apache是通过ajp协议与tomcat通讯的);
3、mod_jk-1.2.28-httpd-2.2.3.so 下载地址:http://download.csdn.net/source/1599820(有试过mod_jk的其他版本,实验不成功)
三、配置:
1、实现apache请求转发多个tomcat
1)在Apache的安装目录下的modules目录下,找到httpd.conf文件,打开此文件,搜索#LoadModule,在这些屏蔽信息#LoadModule后加上
LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so
让httpd加载jk_module模块。
再在该文件最后加上如下内容:
#告诉apache workers文件的位置
JkWorkersFile "%ApacheHomeDir%/conf/workers.properties"
#日志
JkLogFile "%ApacheHomeDir%/logs/mod_jk.log"
#日志级别
JkLogLevel warn
#路径满足/jsp-examples 或 /jsp-examples/* 给work1处理
JkMount /jsp-examples worker1
JkMount /jsp-examples/* worker1
#路径满足/servlets-examples 或 /servlets-examples/* 给work2处理
JkMount /servlets-examples worker2
JkMount /servlets-examples/* worker2
2)在 "%ApacheHomeDir%/conf 目录下创建workers.properties文件,内容如下:
worker.list = worker1,worker2
worker.worker1.port = 8009
worker.worker1.host = localhost
worker.worker1.type = ajp13
worker.worker2.port = 9009
worker.worker2.host = localhost
worker.worker2.type = ajp13
3)重启两个tomcat和apache,访问如下地址:
http://localhost/jsp-examples
http://localhost/servlets-examples
注意:由于apache使用的是80端口,通过80端口可以访问到两个tomcat中自带的示例应用程序,故apache完成了请求从apache到tomcat的转发;
2、实现负载均衡与会话粘滞:
1)修改 "%ApacheHomeDir%/conf/workers.properties" 文件,其内容为:
# balancer 为逻辑名
worker.list = balancer
# worker.balancer要与上面的balancer同名;lb=load balance
worker.balancer.type = lb
# 承担分发工作的tomcat
worker.balancer.balance_workers = worker1,worker2
# B策略=busy 根据繁忙系数来决定请求分配
worker.balancer.method = B
# 说明这个负载均衡器会实现会话粘滞功能(可参考官方说明,各版本tomcat配置会不一样)
worker.balancer.sticky_session = 1
worker.worker1.port = 8009
# 远程服务器则修改为服务器的ip
worker.worker1.host = localhost
worker.worker1.type = ajp13
# 负载均衡器根据这参数来决定该服务器使用的频率
worker.worker1.lbfactor = 1
worker.worker2.port = 9009
worker.worker2.host = localhost
worker.worker2.type = ajp13
worker.worker2.lbfactor = 1
2)为tomcat的Engine配置jvmRoute参数
打开tomcat 的 server.xml文件,找到Engine,在此标签内加上jvmRoute="worker1",另外一个tomcat加上jvmRoute="worker2"
此处的work1和work2要与apache 的 conf/workers.properties配置的work名称对应,这样apache才知道是哪个tomcat来处理请求;
3)修改apache的httpd.xml文件,其内容如下:
JkMount /jsp-examples balancer
JkMount /jsp-examples/* balancer
JkMount /servlets-examples balancer
JkMount /servlets-examples/* balancer
从而将之前交给work1和work2的请求,全部交给balancer来处理。
4)修改tomcat的server.xml文件,去掉Cluster注释:
分别修改两个tomcat的server.xml文件,分别去掉Cluster注释,并修改tcpListenPort配置,将其中一个改为4002即可。
5)配置集群应用:
找到你要集群的项目,web.xml文件
分享到:
相关推荐
Apache2.2+Tomcat5.5整合配置教程 Apache2.2.4 http://archive.apache.org/dist/httpd/binaries/win32/ Tomcat5.5.26 http://tomcat.apache.org/download-55.cgi jk.1.2.6.so ...
apache2.2+php5.4.3+mysql5.5 根据向导安装,简单易用。
直接下载, 即可用 apache2.4+tomcat 7 集群配置
apache2.2+tomcat7
apache2.2 + tomcat6 整合以及集群配置
apache2.2+tomcat6在windows下的集群配置
Apache2.2+Tomcat5.5或5.0 集群配置文档
Apache 2.2 + Tomcat 6.0 + MySQL 5.0 + mod_jk 整合
讲述apache2.2与tomcat5的配置方式
apache2.2+php5.3.8+mysql5.5安装配置超详细!!.pdf
apache2.2+mysql5.0+php5.1+Discuz!4.1配置 1.安装Apache 以Apache使用PHP有两种方式: 作为动态模块,其在运行状态时可载入到Web服务器; 或者作为静态模块,其可直接编译到Web服务器代码中。 我们着重于第一种方式...
apache2.2 + tomcat6 配置方式 在用的服务器
lamp搭建(apache2.2+mysql5.5)
Apache2.2+Tomcat集群 只是一个简单的集群例子,所用到的Apache,Tomcat压缩文件里都有
一键搭建lamp(apache2.2+mysql5.5)
apache2.2+php5.3.8+mysql5.5安装配置超详细!!.docx
apache2.2+php5.3.8+mysql5.5安装配置超详细!!整理.pdf