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. memcached 搭建

     linux 下memcached 的搭建 memcached 下载地址:http://www.danga.com/memcached/dist/ libevent 下载地址:http://libev ...

  2. WCP源码分析 与SpringMVC学习资料

    1.在一个稍大的项目中,通常会有上百个组件,如果这些组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便. Spring2.5为我们引入了组件自动扫描机制,他可以在 ...

  3. python classmethod方法 和 staticmethod

    classmethod() 是一个类方法,用来装饰对应的函数.被classmethod 装饰之后就无需实例化,也不需要在函数中传self,但是被装饰的函数第一个参数需要是cls来表示自身类.可以用来调 ...

  4. 【BZOJ4198】[Noi2015]荷马史诗 贪心+堆

    [BZOJ4198][Noi2015]荷马史诗 Description 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅 ...

  5. ast.literal_eval(jsonStr) json格式字符串转dict 2种方式

    json.loads(jsonStr, encoding='utf-8')import ast ast.literal_eval(jsonStr)

  6. git版本控制-- Windows+Git+TortoiseGit+COPSSH安装图文教程

    Windows+Git+TortoiseGit+COPSSH 安装图文教程 教程网址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd183 ...

  7. Halcon下载、安装

    下载地址: 官网:http://www.halcon.com/halcon/download/ Halcon学习网:http://www.ihalcon.com/read.php?tid=56 { 最 ...

  8. (linux)LED子系统

    数据结构(/include/linux/leds.h) enum led_brightness { LED_OFF = 0, LED_HALF = 127, LED_FULL = 255, }; le ...

  9. python无法安装cv2的解决办法

    问题:在windows命令窗口输入pip install cv2后出现:Could not find a version that satisfies the requirement cv2... 解 ...

  10. jQuery Tab选项卡切换代码

    jQuery Tab选项卡切换代码是一款简单的jquery tab选项卡切换网页特效代码样式,可以修改tab选项卡相关样式. 代码下载:http://www.huiyi8.com/sc/10863.h ...