apache http server下载地址

http://httpd.apache.org/download.cgi#apache22

这里下载的是httpd-2.2.21-win32-x86-openssl-0.9.8r.msi


tomcat下载地址

http://tomcat.apache.org/download-70.cgi

这里下载的是http://apache.etoak.com/tomcat/tomcat-7/v7.0.23/bin/apache-tomcat-7.0.23.zip


jk下载地址

http://labs.renren.com/apache-mirror//tomcat/tomcat-connectors/jk/binaries/windows/

这里下载的是tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip


首先安装apache

然后解压缩tomcat,并将tomcat复制出两份

解压缩jk


将mod_jk.so文件复制到apache/modules文件夹


修改apache/conf/httpd.conf文件

在当前文件最后写入

include conf/mod_jk.conf



在apache/conf目录中,建立mod_jk.conf文件,文件内容如下

#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so

#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /**.do controller

JkMount /**.html controller

JkMount /* controller



在apache/conf目录中,建立workers.properties文件,内容如下

worker.list =
controller,tomcat1,tomcat2  #server 列表

#========tomcat1========
worker.tomcat1.port=18009        
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost 
#tomcat的主机地址,如果不是本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1  
#server的加权比重,值越高,分得的请求越多

#========tomcat2========
worker.tomcat2.port=28009      
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost 
#tomcat的主机地址,如果不是本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1  
#server的加权比重,值越高,分得的请求越多

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2  
#指定分担请求的tomcat
worker.controller.sticky_session=1


修改第一个tomcat/conf/server.xml

<Server port="8005" shutdown


改为

<Server port="18005"


<Connector port="8080"
protocol="HTTP/1.1"


改为

<Connector port="18080"


<Connector port="8009"
protocol="AJP/1.3"


改为

<Connector port="18009"


<Engine name="Catalina"
defaultHost="localhost"


增加jvmRoute

<Engine name="Catalina"
defaultHost="localhost" jvmRoute="tomcat1"


在<Engine
name="Catalina"这个标签的下面添加

<Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                
channelSendOptions="8">
         
<Manager
className="org.apache.catalina.ha.session.DeltaManager"
                  
expireSessionsOnShutdown="false"
                  
notifyListenersOnReplication="true"/>
         
<Channel
className="org.apache.catalina.tribes.group.GroupChannel">

<Membership
className="org.apache.catalina.tribes.membership.McastService"

address="228.0.0.4"
                       
port="45564"
                       
frequency="500"
                       
dropTime="3000"/>
           
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"

address="auto"
                     
port="14000"
                     

                     
selectorTimeout="5000"
                     
maxThreads="6"/>
           
<Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

</Sender>
           
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

<Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

</Channel>
         
<Valve
className="org.apache.catalina.ha.tcp.ReplicationValve"
                
filter=""/>
         
<Valve
className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<ClusterListener
className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>


第一个tomcat配置完毕


修改第二个tomcat/conf/server.xml

<Server port="8005" shutdown


改为

<Server port="28005"


<Connector port="8080"
protocol="HTTP/1.1"


改为

<Connector port="28080"


<Connector port="8009"
protocol="AJP/1.3"


改为

<Connector port="28009"


<Engine name="Catalina"
defaultHost="localhost"


增加jvmRoute

<Engine name="Catalina"
defaultHost="localhost" jvmRoute="tomcat2"


在<Engine
name="Catalina"这个标签的下面添加

<Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                
channelSendOptions="8">
         
<Manager
className="org.apache.catalina.ha.session.DeltaManager"
                  
expireSessionsOnShutdown="false"
                  
notifyListenersOnReplication="true"/>
         
<Channel
className="org.apache.catalina.tribes.group.GroupChannel">

<Membership
className="org.apache.catalina.tribes.membership.McastService"

address="228.0.0.4"
                       
port="45564"
                       
frequency="500"
                       
dropTime="3000"/>
           
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"

address="auto"
            
         port="24000"

selectorTimeout="5000"
                     
maxThreads="6"/>
           
<Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

</Sender>
           
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

<Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

</Channel>
         
<Valve
className="org.apache.catalina.ha.tcp.ReplicationValve"
                
filter=""/>
         
<Valve
className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<ClusterListener
className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>


第二个tomcat配置完毕


在项目的web.xml的最下方,添加支持session复制的语句

<distributable />
</web-app>



集群和session复制配置完毕,将war包分别部署到两个tomcat的webapps目录就可以实现项目的负载均衡和session复制。

一个很重要的问题,要实现session复制,必须序列化所有要存到session中的东西才行,例如

SessionInfo sessionInfo = new SessionInfo();

session.setAttribute("sessionInfo",sessionInfo);


这个sessionInfo必须 implements
java.io.Serializable 才可以进行session复制,否则报错。

版权声明:本文为博主原创文章,未经博主允许不得转载。

(转)apache2.2.x+tomcat7.0.x集群+…的更多相关文章

  1. apache2.2.25+tomcat7.0.47集群方案

    因为公司项目在线人数的增加,随着现在硬件成本越来越低,大多数的生产环境内存大多都已经达到 16G,尤其最新的阿里云,客户的机器都是配置超高的java主机,但是Java的运行环境,内存使用有限 ,这样就 ...

  2. Tomcat7.0.99集群使用Redis共享session方案

    以前配置过给予多播的session共享方案,这回再配置一个redis共享session的. 先小小的炫耀一下: 相信大家要做Tomcat+Redis+session配置,遇到的头号麻烦就是编译的tom ...

  3. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  4. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)

    原文:http://www.cnblogs.com/PurpleDream/p/4510279.html 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群 前言:       ...

  5. 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章

    菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...

  6. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  7. Redis-4.0.11集群配置

    版本:redis-3.0.5 redis-3.2.0  redis-3.2.9  redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...

  8. Redis 5.0.5集群搭建

    Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...

  9. Redis-5.0.5集群配置

    版本:redis-5.0.5 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://github.com/eyjian/re ...

随机推荐

  1. Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

    sftp -b batchfile username@remote_host 报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic, ...

  2. IE浏览器的判断

    function compatibleIE8(){ var browser = navigator.appName; var b_version = navigator.appVersion; if( ...

  3. sql查询的日期判断问题

    在SQLSERVE中,如果某个数据表的类型被定义成datetime类型,那么数据是包含秒的.这时候如何查询某天的数据呢?新手们可能想:最直接的做法是把时间部分去掉,只取日期部分.于是日期的函数就用上了 ...

  4. iOS10.3 UILable中划线失效问题

    iOS10.3系统的一个Bug,在UILable中含有中文时,中划线会失效 NSString *priceStr = [NSString stringWithFormat:@"%.2f元&q ...

  5. php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释

    1.1 PHP  超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp——windowns+apache+mySQL+php    常用于开发.学习和研究 lamp ——linu ...

  6. sql语法值ORACLE简单介绍

    版权声明:本文为[博主](https://zhangkn.github.io)原创文章,未经博主同意不得转载.https://creativecommons.org/licenses/by-nc-sa ...

  7. 百度小程序转换微信小程序

    Python脚本,一键转换Github地址:https://github.com/DWmelon/py-transfer-BdToWx 运行条件 具备Python环境,可在命令行中使用Python命令 ...

  8. ABAP 关键字(1)

    1.定义DATA ,TYPES TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值. DA ...

  9. ME01 创建货源清单

    [转自 http://blog.sina.com.cn/s/blog_6466e5f70100ix3p.html ] SAP中采购货源清单创建的方法有以下几种: 1.ME01 手动逐个创建. 2.ME ...

  10. 字符串的朴素模式和KMP模式匹配

    先复习一下字符串指针: #include <iostream> #include <string.h> using namespace std; int main() { ch ...