`

apache tomcat集群 负载均衡 session同步

阅读更多

一、环境搭建:
* 准备机器两台:192.168.0.2、192.168.0.3

* 下载apache2.2.9,地址:http://httpd.apache.org/download.cgi ,安装在192.168.0.2的D:\Apache

* 下载apache-tomcat-5.5.26.zip,地址:http://tomcat.apache.org/download-55.cgi ,分别解压到192.168.0.2、192.168.0.3的D:\Tomcat5.5

* 下载mod_jk,在这里找:http://tomcat.apache.org/download-connectors.cgi ,或者直接下载:http://dev.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.2.4.so ,拷贝到D:\Apache\modules改名为:mod_jk

二、集群,负载配置:
* 修改D:\Apache\conf\httpd.conf,

修改前:

#Listen 12.34.56.78:80
Listen 80

#
# Dynamic Shared Object (DSO) Support


修改后:

#Listen 12.34.56.78:80
#Listen 80

Listen 192.168.0.2:80


#引入配置文件

Include conf/http-vhosts.conf
Include conf/mod_jk.conf

# add compress  start
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
# add compress  end
#
# Dynamic Shared Object (DSO) Support


* 在conf下面新建http-vhosts.conf内容如下:

NameVirtualHost *:80

<VirtualHost *:80>
		ServerAdmin admin@yoursite.com
		DocumentRoot "e:/site/apache/www.yoursite.com"
		ServerName yoursite.com
		ServerAlias www.yoursite.com
		ErrorLog "logs/www.yoursite.com-error.log"
		CustomLog "logs/www.yoursite.com-access.log" common

# add compress  start
<Location "/">
	SetOutputFilter DEFLATE
	BrowserMatch ^Mozilla/4 gzip-only-text/html
	BrowserMatch ^Mozilla/4\.0[678] no-gzip
	BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
	SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
	Header append Vary User-Agent env=!dont-vary
</Location>
# add compress  end

<Directory "e:/site/apache/www.yoursite.com">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

</VirtualHost>


* 在conf下新建文件mod_jk.conf,内容如下:

# Load mod_jk module
LoadModule jk_module modules/mod_jk.so


# Where to find workers.properties
JkWorkersFile conf/workers.properties

 # Where to put jk shared memory
JkShmFile     logs/httpd/mod_jk.shm

# Where to put jk logs
JkLogFile logs/mod_jk.log


# Set the jk log level [debug/error/info]
JkLogLevel info


# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "


# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories


# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T %R"

# All requests go to Tomcat by default
JkMount   /*     www
# Serve html, jpg and gif etc using Apache
JkUnMount /*.css www
JkUnMount /*.js  www
JkUnMount /*.gif www
JkUnMount /*.jpg www
JkUnMount /*.htm www
JkUnMount /*.swf www
JkUnMount /*.xml www
JkUnMount /*.ico www

# png and flv mount to tomcat
#JkUnMount /*.png www
#JkUnMount /*.flv www


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

#
# workers.properties
#

# list the workers by name

worker.list=www
worker.maintain=60

# =============================================================================

# ------------------------
# www1 server 0.2
# ------------------------
worker.www1.port=8009
worker.www1.host=192.168.0.2
worker.www1.type=ajp13
worker.www1.socket_timeout=0
worker.www1.socket_keepalive=true
worker.www1.lbfactor=10
# Define preferred failover node for worker1
#worker.www1.redirect=www2

# ------------------------
# www2 server 0.2
# ------------------------
worker.www2.port=9009
worker.www2.host=192.168.0.2
worker.www2.type=ajp13
worker.www2.socket_timeout=0
worker.www2.socket_keepalive=true
worker.www2.lbfactor=10
#Disable worker2 for all requests except failover
#worker.worker2.activation=disabled


# ------------------------
# Load Balancer worker
# ------------------------
worker.www.type=lb
#worker.www.balance_workers=www2
worker.www.balance_workers=www1,www2
worker.www.sticky_session=true
#worker.www.method=Traffic

# ----------------------
#
#-----------------------
# Add the status worker to the worker list
#worker.list=jkstatus
# Define a 'jkstatus' worker using status
#worker.jkstatus.type=status

# Add the jkstatus mount point
#JkMount /jkmanager/* jkstatus


# ===========================================================================
#
# END workers.properties
#


三、session复制:参见[Tomcat 5集群中的SESSION复制|Tomcat 5集群中的SESSION复制详解],方法如下:
* 在每个工程的web.xml中</web-app>前面加上一行:<distributable/>(不要忘记了)
* 在tomcat配置文件的conf下的server.xml中去掉注释,如下:

<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="228.0.0.4"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4002"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>

            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
        </Cluster>


* 下面是成功的正常的反应(关闭另一个tomcat,开始另一个tomcat):


 

现在你可是感受一下成果,session被复制到每个tomcat例程,即使例程当机,只要还剩下一个例程,用户就感觉不到任何异常。

 

  • 大小: 26.5 KB
0
0
分享到:
评论

相关推荐

    apache tomcat 集群 负载 均衡

    ### Apache Tomcat 集群与负载均衡技术详解 ...通过以上步骤,我们可以成功地搭建起一个基于Apache和Tomcat的简单集群,并实现了负载均衡与Session复制,为用户提供了一个更加稳定、高效的服务环境。

    apache,tomcat负载均衡和session复制

    当我们谈论"Apache,tomcat负载均衡和session复制"时,这意味着我们要探讨如何在多台服务器之间分配负载,并确保用户会话的无缝迁移和一致性。 **负载均衡**是解决高并发、高可用性问题的重要策略。它通过将来自...

    Apache Tomcat负载均衡及Session绑定的实现.rar

    3集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个...欢迎下载:Apache Tomcat负载均衡及Session绑定的实现.doc,共10页,3千多字,图文教程!

    apache tomcat 集群 负责均衡 session复制

    NULL 博文链接:https://xueweiabcok.iteye.com/blog/1841448

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Tomcat集群与负载均衡

    ### Apache Tomcat 集群与负载均衡 #### 1. 集群相关简介 ##### 1.1 集群 集群是一组通过高速网络互相连接的计算机,它们作为一个整体协同工作,对外呈现出单一系统的特性。客户端与集群交互时,会感觉像在与一个...

    apache_server+Tomcat7集群负载均衡session共享

    session共享则是一个关键问题,因为用户会话数据需要在各个Tomcat实例之间同步,以确保用户在集群中的任何节点上都能保持登录状态和应用状态的一致性。 Apache Server 2.2是一款广泛应用的开源HTTP服务器,它支持...

    Tomcat和Apache集群和负载均衡配置

    ### Tomcat和Apache集群及负载...通过以上步骤,可以有效地搭建起Apache+Tomcat集群,实现负载均衡,提高系统的稳定性和性能。这种架构不仅可以应对高并发场景,还可以通过增加更多的Tomcat节点来轻松扩展系统容量。

    Apache+Tomcat实现负载均衡及集群(session同步)--五、session同步(3)使用memcache

    通过以上步骤,你就可以利用memcache实现Apache+Tomcat的session同步,从而构建一个高效且具有高可用性的Web服务集群。需要注意的是,虽然memcache提供了一种简单的方法来处理session同步,但在大型系统中,你可能还...

    Apache Tomcat 负载均衡

    为了使Apache能够作为前端代理,将请求转发给后端的Tomcat集群,需要在Apache的`httpd.conf`中包含`mod_jk.conf`,并加载`mod_jk`模块。`mod_jk.conf`应包含以下内容: ```apache LoadModulejk_modulemodules/mod_...

    Apache负载均衡 Tomcat6的集群和session的复制

    本篇将深入探讨Apache如何实现负载均衡,以及Tomcat集群和session复制的相关知识。 首先,Apache的负载均衡主要通过模块mod_proxy来实现。这个模块能够将客户端的HTTP请求转发到不同的后端服务器,从而达到负载均衡...

    Apache与Tomcat集群负载均衡(一键打包解压即可运行)

    Tomcat和Apache集群和负载均衡配置 Tomcat版本:apache-tomcat-7.0.26 Apache版本:Apache2.2.25 jre版本:1.6.0_26 集群和负载均衡配置已整好,解压后,只要点击run.bat一键启动,即可看到集群效果。 运行成功后,...

    Apache+Tomcat集群和负载均衡及Session绑定

    【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。

    linux下apache+tomact基于集群负载均衡session复制

    ### Linux 下 Apache+Tomcat 基于集群负载均衡 Session 复制 #### 一、概述 在现代 Web 应用开发中,为了提高服务的可用性和响应速度,常常会采用集群技术。其中,Apache 和 Tomcat 组合是常用的方案之一。本篇...

    Apache+tomcat负载均衡

    Apache+Tomcat的负载均衡配置就是为了解决这一问题。 负载均衡的基本思想是将来自用户的请求分发到多个后端服务器,这样可以避免任何单一服务器过载,同时提高整体服务的可靠性和响应时间。Apache通常通过其模块mod...

    apache的tomcat负载均衡(两个tomcat)和集群配置(session复制)

    在Tomcat集群中,为了保持用户会话在不同服务器间的同步,需要实现session复制。这可以通过以下方式实现: 1. **集群配置** - 在每个Tomcat实例的`server.xml`中,设置`&lt;Engine&gt;`、`&lt;Host&gt;`和`&lt;Cluster&gt;`元素。...

    apache tomcat集群 经验分享

    这两个版本在进行Apache负载均衡配置时步骤相同,但在集群中不建议混合使用不同版本的Tomcat,因为可能会导致Session复制等问题。 - **下载与安装**:需要下载ZIP格式的安装包,然后解压到指定目录即可。 #### 三、...

Global site tag (gtag.js) - Google Analytics