Apache负载均衡实战-session共享

标签: apache 负载均衡 session | 发表时间:2015-12-03 23:14 | 作者:xiang37
出处:http://www.iteye.com

Apache负载均衡实战

              含Session共享

一准备工作

下载Apache、tomcat

    2个或者多个tomcat

F:\JavaProgram\apache-tomcat-7.0.64-8088

F:\JavaProgram\apache-tomcat-7.0.64-8080

1个apache

F:\Apache24\bin

 

下载mod_jk.so

将此文件添加到目录F:\Apache24\modules

二配置文件

1 修改Apache conf目录下的httpd.conf

 在最后一行添加

include "F:\Apache24\conf\mod_jk.conf"

 

2 新建mod_jk.conf文件

在目录F:\Apache24\conf下添加文件,内容如下:

LoadModule jk_module modules/mod_jk.so

 

JkWorkersFile conf/workers.properties

 

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

JkMount /* controller

 

3 tomcat配置

在Server.xml文件中添加两端配置:

 

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

 

集群配置:

<Cluster className= "org.apache.catalina.ha.tcp.SimpleTcpCluster"

                 channelSendOptions= "6">

          <Manager className= "org.apache.catalina.ha.session.BackupManager"

                   expireSessionsOnShutdown= "false"

                   notifyListenersOnReplication= "true"

                   mapSendOptions= "6"/>

 

          <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= "5000"

                      selectorTimeout= "100"

                      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"/>

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

          </Channel>

 

          <Valve className= "org.apache.catalina.ha.tcp.ReplicationValve"

                 filter= ".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

 

          <Deployer className= "org.apache.catalina.ha.deploy.FarmWarDeployer"

                    tempDir= "/tmp/war-temp/"

                    deployDir= "/tmp/war-deploy/"

                    watchDir= "/tmp/war-listen/"

                    watchEnabled= "false"/>

 

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

        </Cluster>

 

4 应用配置

需要在应用的web.xml文件中添加如下配置,表示该应用将在分布式容器中部署:

  <distributable/>

 

5 新建workers.properties文件

在目录F:\Apache24\conf下添加文件,内容如下

#server

worker.list = controller

#========tomcat1========

worker.tomcat1.port=8009

worker.tomcat1.host=127.0.0.1

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

 

#========tomcat2========

worker.tomcat2.port=8019

worker.tomcat2.host=127.0.0.1

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

 

#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balanced_workers=tomcat1,tomcat2

worker.controller.sticky_session=false

worker.controller.sticky_session_force=1

#worker.controller.sticky_session=1

 

 

附一 Apache基本的操作方法:

本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况

apahce启动命令:

推荐/usr/local/apache2/bin/apachectl start apache启动

apache停止命令

/usr/local/apache2/bin/apachectl stop   停止

apache重新启动命令:

/usr/local/apache2/bin/apachectl restart重启

要在重启 Apache 服务器时不中断当前的连接,则应运行:

/usr/local/sbin/apachectl graceful

 

附二引申以及需要注意的问题:

1、 session 复制的方式:BackupManager与DeltaManager

2、 Java 应用session的value需要序列化,否则无法实现session共享



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [apache 负载均衡 session] 推荐:

Apache负载均衡实战-session共享

- - 企业架构 - ITeye博客
              含Session共享. 下载Apache、tomcat.     2个或者多个tomcat. 将此文件添加到目录F:\Apache24\modules. 1 修改Apache conf目录下的httpd.conf. 2 新建mod_jk.conf文件. 在目录F:\Apache24\conf下添加文件,内容如下:.

Apache+Tomcat+keepalived的负载均衡session复制及HA

- - 开源软件 - ITeye博客
0、关闭防火墙(service iptables stop; chkconfig --level 35 iptables off),.    关闭selinux vi /etc/selinux/config   SELINUX=disabled. setenforce 0 生效. 1、将mod_jk-1.2.31-httpd-2.2.x.so上传至/etc/httpd/modules目录下.

基于apache的tomcat负载均衡和集群配置

- - 研发管理 - ITeye博客
基于apache的tomcat负载均衡和集群配置. httpd-2.2.15-win32-x86-no_ssl.msi    网页服务器. mod_jk-1.2.30-httpd-2.2.3.so             Apache/IIS 用来连接后台Tomcat的模块,支持集群和负载均衡.        JK 分为两个版本 1,x 和 2.x ,其中 2.x 并不是最新的版本,它是 JK 的另外一个分支,后不知何因没有继续开发,因此2.x 版本已经废弃.

apache安装、简单配置负载均衡和会话保持

- - ITeye博客
首先安装apache依赖的apr和apr-util. 1.下载(apr.apache.org/download.cgi)源文件, 如apr-1.5.1.tar.gz. 2.解压 tar -xzvf apr-1.5.1.tar.gz. 3.进入解压目录,依次执行. 4.下载(apr.apache.org/download.cgi)源文件, 如apr-util-1.5.4.tar.gz.

Apache +Tomcat的负载均衡与集群配置

- - 企业架构 - ITeye博客
Tomcat的安装和配置. Tomcat_a的ip:192.168.55.229. Tomcat_b的ip:192.168.55.231. Tomcat的需要安装jdk和tomcat包(例如apache-tomcat-6.0.30.zip和jdk-6u5-linux-x64.bin). tomcat的安装和配置可以参考我的博客:.

Linux下Apache+Tomcat搭建负载均衡服务器集群

- - 极客521 | 极客521
这篇文章主要讲解关于如何在Linux下搭建Apache+tomcat 负载均衡服务器集群的过程. 负载均衡集群配置(1):Tomcat的配置. 修改“ tomcat/conf/server.xml ”文件. 编辑server.xml文件,找到“ ”元素节点,在server.xml文件里面未注释掉的有两个 元素节点.

采用ajp代理模式配置Apache+tomcat实现负载均衡

- - 研发管理 - ITeye博客
这一种方法,配置简单,性能也高. apache 必须是2.2.x以上版本.       AJP是Apache提供的完成与其它服务器通讯的一种协议. 在Apache中通过mod_proxy_ajp模块发送AJP数据,另外一端的服务器需要实现AJP协议,能够接受mod_proxy_ajp模块发送的AJP协议数据,在接受到AJP协议数据后做适当处理,并能够将处理结果以AJP协议方式发送回给mod_proxy_ajp模块.

JBoss4.2.3GA+Apache/2.2.11+mod_jk1.2.28 搭建负载均衡 全过程记录(附上搭建环境)

- - 博客园_首页
     都是从网上搜集,再通过自己的实践总结出来的,相信对没做过Load Balancing的同学会有一定帮助. 1.     JBoss集群配置概念. JBoss集群(Cluster)是 一组计算机节点的集合,它们作为一个整体向用户提供一组网络资源. 用户由单一入口访问集群的资源,从来不会意识到集群中的 节点.

Apache+Tomcat+Memcached共享Session的构架设计

- - CSDN博客架构设计推荐文章
一、       方案目标. 实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行. 二、       部署架构. 采取Tomcat集群的部署方式,Apache通过proxy_module代理方式对用户的请求进行负载均衡,转发至tomcat集群中的某一实例进行处理,tomcat集群之间通过Memcached高性能缓存集群共享持久Session.

使用 Redis 来存储 Apache Tomcat 7 的 Session

- - 编程语言 - ITeye博客
使用  Redis 服务器来存储Session非常有优势. 首先它是一个NOSQL数据,第二它很容易扩展使用. This kind of setup would lead to a clear understanding of how  Redis can behave as cache as well as a session storing system.