使用Apache HTTPD和JK实现Tomcat集群

昨天在单位折腾了大半天,tomcat的集群终于弄好了,原来以为Tomcat的集群只需要在tomcat本身配置一下就行了呢,找了很多资料,不是自己想像的这样,下面对tomcat的集群做一下整理吧,备用。PS:集群应用涉及到上传是个小问题。

工具 apache httpd 2.2, jk 1.23 ,tomcat 7

1.tomcat配置

以本机下做tomct集群为例,复制三份tomcat,分别修改server.xml文件,修改地方如下:


1.tomcat关闭时的监听端口
<Server port="18005" shutdown="SHUTDOWN">
2.tomcat对外直接访问的端口
<Connector port="9901" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3.修改tomcat提供其他容器访问的AJP端口
<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />
4.修改tomcat的jvmRoute名称
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

//说明:蓝色部分是3个tomcat应该修改的,本机下,参数不能一样

2.一路next安装Apache httpd,将mod_jk-1.2.31-httpd-2.2.3.so复制到apache的modules目录下

3.修改apache配置

修改httpd.conf引入mod_jk.conf配置文件

include conf/mod_jk.conf

conf目录下新建mod_jk.conf文件,内容如下:


LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller

#说明: 1.LoadModule 加载jk插件到apache
    2.JkWorkersFile 指定jk配置文件位置  
    3.JkMount设置过哪些请求滤到tomcat处理,上面是简单示例配置,下面更详细



在conf目录下新建workers.properties文件,内容如下:


#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor =1
#========tomcat2========
worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor =1
#========tomcat3========
worker.tomcat3.port=13009
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor =1

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balance_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1

//说明:上面蓝色参数就是tomcat中设置的参数
 其中lbfactor表示服务器作为主服务器的可能性
  

4.以上配置完成后,就可以在每个tomcat下部署相同的应用,分别启动tomcat,然后启动apache,然后就可以通过http://localhost/web应用名称/XXX访问了,这里不需要使用tomcat的端口,而是通过apache的端口来访问的,apache会自动负载均衡到每个tomcat应用服务器。

时间: 2024-11-10 09:03:10

使用Apache HTTPD和JK实现Tomcat集群的相关文章

Tomcat集群session复制,httpd/nginx反代Tomcat集群

   一个大型站点都会涉及到动态应用,动态应用都需要做会话保持,常见的会话保持方式就三种,一是session stick,二是session replication,三是session share,对于小型规模的tomcat集群,大多者会采用session replication方式,但阅读官方文档也好,查询大牛博客也罢,发现均有不准确之处,所以亲测成功实现之后得出如下文档,还望高人指点. 实验环境: 操作系统:CentOS 7.2 tomcat版本:tomcat-7.0.54(yum安装方式)

memcached演练(3) 使用memcached搭建tomcat集群

上篇文章,已经明确了tomcat集群的必要性,主要从高可用和高并发量考虑.一般使用tomcat集群搭建,都要使用前置设一个nginx或apache作个反向代理,将请求转发给后端tomcat.使用tomcat集群,必然会引来session数据共享问题.如何解决这个问题?可借助memcached实现. 主要内容 测试单台tomcat的吞吐率 搭建apache+mod_jk+2个tomcat集群环境 搭建apache+mod_jk+2个tomcat+memcached集群环境 对比2个环境的吞吐率情况

Apache+Tomcat集群配置

本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache[下载地址] 企业框架源码 Apache是http服务器,我们利用其对Tomcat进行负载均衡.目前最新版本为2.2.17,下载地址为http://httpd.apache.org/download.cgi#apache22.如下图: 目前已经出现Apache2.3.11,但是为beta版本,所以没有使用. 下载后直接

通过Apache+mod_JK+Tomcat集群实现负载均衡

通过Apache+mod_JK+Tomcat集群实现负载均衡 1.概念 通过Apache+mod_JK+Tomcat集群搭建起来的环境主要用来实现负载均衡和高可用性.使用apache作为反向代理服务器实现负载均衡,使用mod_jk可以实现节点的故障恢复功能,达到高可用性.使用tomcat集群功能实现sessionID共享复制.用户访问数据在到达apache后,如果是静态内容,直接由apache处理,如果是动态请求,就通过mod_jk调用后端的一台tomcat服务器去处理请求,可以通过黏性Sess

Linux下通过apache实现tomcat集群

对于WEB应用集群的技术实现而言,最大的难点就是如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点,大体上有两种方式,一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据:另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据.两种方式都各有优点,第一种方式简单.易于实现,但是存在着Session服务器发生故障会导致全

Apache+tomcat或Nginx+tomcat集群搭建

Apache+tomcat集群搭建 1.http://httpd.apache.org/下载apache,本博客以httpd-2.4.12-x86-vc11-r2版本为例(第一个发行版中的) 2.http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载mod_jk 3.注意Apache和mod_jk的版本,32bit后者64bit要统一 4.apache的httpd.conf文件可能有点问题

Tomcat集群搭建超详细(apache+mod_jk+tomcat)

TOMCAT集群 目录 TOMCAT集群 1 1 集群 1 1.1 什么是集群 1 1.2 集群的特性 1 1.3 集群的分类 1 1.4 TOMCAT集群配置的优缺点 2 1.5 APACHE+TOMCAT 2 1.6 环境说明 2 2 软件安装 3 2.1 安装说明 3 2.2 JDK安装 3 2.3 APACHE安装 4 2.4 TOMCAT安装 4 3 集群配置 6 3.1 APACHE+MOD_JK+TOMCAT配置 6 3.2 测试 7 4 SESSION复制 8 4.1 SESSI

apache tomcat集群

一.本机环境 1.Windows 7 64位操作系统 2.java版本 "1.6.0_20" 3.Apache安装包httpd-2.2.21-win32-x86-no_ssl.msi,默认安装 4.tomcat压缩包(apache-tomcat-6.0.24.zip) 5.在一台机器上进行的 二.配置 1.前提是Apache安装正确,启动正常2.解压缩多个tomcat,例如d:tomcat_01,d:tomcat_023.配置httpd.conf文件找到如下信息,并进行修改 #Load

Centos下Apache+Tomcat集群--搭建记录

一.目的 利用apache的mod_jk模块,实现tomcat集群服务器的负载均衡以及会话复制,这里用到了<Cluster>. 二.环境 1.基础:3台主机,系统Centos6.5,4G内存,50G硬盘. yum源已更换为阿里源(如何更换可参考博客的另外一篇文章) 2.软件:development tools,jdk-7u9-linux-x64.rpm;源码编译软件apr-util-1.5.4.tar.gz,apr-1.5.2.tar.gz,tomcat-connectors-1.2.40-s