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. python 基础 9.2 mysql 事务

    一. mysql 事务    MySQL 事务主要用于处理操作量大,复杂度高的数据.比如,你操作一个数据库,公司的一个员工离职了,你要在数据库中删除它的资料,也要删除该人员相关的,比如邮箱,个人资产等 ...

  2. 【CF830C】Bamboo Partition 分块

    [CF830C]Bamboo Partition 题解:给你n个数a1,a2...an和k,求最大的d使得$\sum\limits_{i=1}^n((d-a[i] \% d) \% d) \le k$ ...

  3. Something Starts While Something Ends

    (1)最终还是没能参加比赛,一次都没有机会. (2)有梦想,不到最后一刻不会放弃. (3)这里应该会搬次家,转到github上. (4)作为一个新手,什么东西都需要从头学起来,就从最基础的数据结构开始 ...

  4. 前后端分离之fiddler前端开发代理 autoresponder 正则表达式 regex:(?insx) 修正符详解

    regex:(?isx)^http://127.0.0.1:3000(/dlscene)?/order/(\w*) http://127.0.0.1:8080/dlscene/order/$2 上面这 ...

  5. live555二次开发经验总结:RTSPClient客户端与RTSPServer服务器

    live555介绍 安防领域的流媒体开发者估计没有谁不知道live555的,可能并不是因为其架构有多牛,代码有多好看,而是因为这玩意存在的年限实在是太长了,从changelog来看,live555从2 ...

  6. 九度OJ 1020:最小长方形 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6019 解决:2849 题目描述:     给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在 ...

  7. 4.2 《锋利的jQuery》jQuery中的动画

    问题:queue()方法? tip0: jquery从1.9版本以上就不支持toggle()方法. // $("#panel h5.head").toggle(function() ...

  8. git功能速查

    http://gitbook.liuhui998.com/index.html git rebase:在本地变基.将本地所有的修改应用到另一个分支上 git merge:在本地合并分支 git bra ...

  9. zabbix 监控 haproxy 记录

    1. 当配置好后,遇到 Value should be a JSON object. 该如何是好? sudo 文件增加: zabbix ALL=(ALL) NOPASSWD: ALL haproxy ...

  10. Spark- Linux下安装Spark

    Spark- Linux下安装Spark 前期部署 1.JDK安装,配置PATH 可以参考之前配置hadoop等配置 2.下载spark-1.6.1-bin-hadoop2.6.tgz,并上传到服务器 ...