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

之前在我的博客里面写了一篇文章http://blog.csdn.net/yannanying/article/details/43018175,本文就是为了补充当时的那篇文章而写。我记得当时是参考百度经验里面的一篇文章写的,文章地址为http://jingyan.baidu.com/article/ab0b5630b632dbc15afa7dc4.html,寒假的时候按照这篇文章的相关内容搭建了Apache+tomcat服务器集群,当时是弄成功了,回到学校后再次想尝试一下怎么搭建,但是发现自己记得不是很清楚了,然后就写下了这篇文章。

负载均衡集群配置(1):Tomcat的配置

修改“ tomcat/conf/server.xml ”文件

编辑server.xml文件,找到“<Connector>”元素节点,在server.xml文件里面未注释掉的有两个<Connector>元素节点。找到第二个也就是上面一行注释为

<!-- Definean AJP 1.3 Connector on port 8009 -->

的节点。将其修改为

———————————–需要操作的代码———————————————-

 <!-- Define an AJP 1.3 Connector on port 8009 -->
 <Connector port="8009" protocolhandlerclassname="org.apache.jk.server.jkcoyotehandler" protocol="AJP/1.3" redirectPort="8443" />

注意:如果是在一台PC上同时运行多个tomcat,须将每个tomcat对的server.xml文件里面的“<Connector>”元素节点里面的port(端口号)设置为不同的值。这里不同上面只改第二个,而是两个“<Connector>”元素节点都须要修改。

负载均衡集群配置(2):

接下来继续修改这个文件,找到“<Connector>”元素节点下面的注释如下

<!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->

?里面有

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

将其注释打开。这里进行tomcat的命名,即修改jvmRoute的值为tomcat实例名,不同的tomcat设置不同的值(这里不管是否是同一PC都须不同)。比如我的修改为tomcat1和tomcat2

———————————–需要操作的代码———————————————-

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

负载均衡集群配置(3):

接下来还是操作tomcat的server.xml文件,在<Engine><Host>元素节点下添加以下内容

———————————–需要操作的代码———————————————-

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
        <Manager className="org.apache.catalina.ha.session.BackupManager"
           expireSessionsOnShutdown="false"
           notifyListenersOnReplication="true"
              mapSendOptions="6"/>
        <!--
         <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.1.99"
              port="45564"
              frequency="500"
              dropTime="3000"/>
          <Receiver
                  className="org.apache.catalina.tribes.transport.nio.NioReceiver"
              address="192.168.11.128"                                                        port="4002"
              autoBind="100"
              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"/>
       </Channel>
       <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
       <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
       <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.JvmRouteSessionIDBinderListener"/>
       <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
   </Cluster>

上述添加的代码的用处请继续看第4步。

负载均衡集群配置(4):

这里还是继续操作tomcat的server.xml文件

找到刚刚添加的一长串代码中的<Cluster>元素节点,下面开始修改,代码意义见其中的注释解释

———————————–需要操作的代码———————————————-

<Membership
     className="org.apache.catalina.tribes.membership.McastService"
     address="228.0.1.99"
     port="45564"
     frequency="500"
     dropTime="3000"/>
<!-- 解释上一句代码.
     如果主机有vpn-虚拟专用网络,需要要bind下,即添加  bind="127.0.0.1" 在Membership元素节点里面作为属性。如果没有的话可以不用加bind,否则会导致session无法复制.
     address的值表示广播地址,同一组tomcat搭建的集群配置须一样。
     port端口号,同一组tomcat搭建的集群配置须一样。
 -->
<Receiver
     className="org.apache.catalina.tribes.transport.nio.NioReceiver"
     address="192.168.11.128"
     port="4002"
     autoBind="100"
     selectorTimeout="100"
     maxThreads="6"/>
<!-- 解释上一句代码.
     address的值表示本机IP地址,须设置为本机IP地址。
     port端口号(tomcat默认可以检测到4000~4100之间的端口)。如果是在同一台PC上配置负载均衡则需要修改,使用不同的端口号,否则会因为端口冲突而失效。
-->

负载均衡集群配置(5):项目部署文件的配置

修改待发布项目的web.xml

找到项目的web.xml文件,打开修改,在<web-app>元素节点结束标签上面一行添加

———————————–需要操作的代码———————————————-

<distributable/>

从而确保session能够复制。

?

负载均衡集群配置(6):Apache的配置

接下来进行Apache配置文件的修改,找到Apache安装文件夹下面的conf文件夹里面的httpd.conf文件打开并进行修改,在最后面加上一下内容

———————————–需要操作的代码———————————————-

#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
<Ifmodule mod_jk.c>
#指定workers.properties文件路径
JkWorkersFile /usr/local/apache2/conf/workers.properties
#指定jk logs文件存放位置
JkLogFile /usr/local/apache2/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 KEYSIZE,
JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat set the requestformat
JkRequestLogFormat "%w %V %T %q %U%R"
#JkShmFile to put logs
JkShmFile /usr/local/apache2/logs/mod_jk.shm
</IfModule>
#指定哪些请求交给tomcat处理,哪些请求交给apache处理
#注意:" loadbalancer "为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp loadbalancer
#所有的jsp都交给tomcat处理

负载均衡集群配置(7):

?在上一步中添加的httpd.conf文件的最后添加的配置中的workers.properties文件是不存在的,需要我们在指定的位置创建一个,查看上一步可以发现文件在 /usr/local/apache2/conf/路径下面创建。

workers.properties文件用于对负载均衡的负载器worker(即tomcat)进行具体的登记,此处的2个tomcat就作为2个worker被登记在这个文件中。

workers.properties具体配置如下:

———————————–需要操作的代码———————————————-

#workers.properties
#
# in unix, weuse forward slashes:
ps=/
# workers 列表
worker.list=tomcat1,tomcat2,tomcat3,loadbalancer,status
#--------------------------------------------------------------------
# 第一个tomcat
#--------------------------------------------------------------------
worker.tomcat1.port=8009   #对应tomcat的server.xml中配置的ajp13端口号
worker.tomcat1.host=127.0.0.1  #tomcat1的主机地址,如不为本机,请填写IP地址
worker.tomcat1.type=ajp13  #定向包协议
worker.tomcat1.lbfactor=1  #server的负载分配权重,值越高,分得的请求越多
#以下为非必要配置,这部分配置tomcat2的配置同tomcat1
#worker.tomcat1.cachesize=1000  #配置tomcat的jk连接缓存大小 (非必要)
#worker.tomcat1.cachesize_timeout=600  # (非必要)
#worker.tomcat1.reclycle_timeout=300  # (非必要)
#worker.tomcat1.socket_keepalive=1  #防止防火墙切断未激活的网络连接(非必要)
#worker.tomcat1.socket_timeout=300   #(非必要)
#worker.tomcat1.local_worker=1  # (非必要)
#worker.tomcat1.retries=3  # (非必要)
#----------------------------------------------------------------------
# 第二个tomcat
#----------------------------------------------------------------------
worker.tomcat2.port=8809
worker.tomcat2.host=127.0.0.1  #tomcat2的主机IP地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#---------------------------------------------------------------------
#第三个tomcat,使用其他ip对应的tomcat
#---------------------------------------------------------------------
worker.tomcat3.port=8009
worker.tomcat3.host=192.168.11.128
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
#----------------------------------------------------------------------
# load balancerworker -负载均衡控制器
# --------------------------------------------------------------------
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2,tomcat3
#指定分担请求的tomcat
worker.loadbalancer.sticky_session=1    #设置为粘性session
worker.loadbalancer.sticky_session_force=0  #设置当多次请求未响应,请求将转发
worker.status.type=status
#
# end workers.properties

负载均衡集群配置(8):

?修改Apache安装陌路下的conf文件夹里的httpd.conf文件。

打开httpd.conf文件并修改。找到DocumentRoot和Directory并修改,将文件访问路径定位到tomcat的webapps文件夹,即待发布项目的存放位置

———————————–需要操作的代码———————————————-

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/local/tomcat1/webapps"
<Directory "/usr/local/tomcat1/webapps">
   Require all granted
   Orderallow,deny
   Allow from all
</Directory>

到此配置基本完成。

下面就该进行测试了

时间: 2024-10-12 09:22:58

Linux下Apache+tomcat搭建负载均衡服务器集群的相关文章

keepalived+nginx+tomcat搭建高性能web服务器集群

使用keepalived+nginx+tomcat搭建高性能web服务器集群,系统采用centos6.9,前端用nginx做反向代理实现负载均衡,同时结合keepalived对nginx实现高可用,后端使用两台tomcat做动态jsp解析,实现了动静分离. 搭建环境 准备四台服务器 vip: 192.168.75.130master: 192.168.75.131 (安装nginx做反向代理实现负载匀衡,结合keepalived实现高可用)backup: 192.168.75.132 (同上)w

apache+tomcat 搭建负载均衡系统

apache+tomcat+mod_jk 搭建负载均衡系统. 0.os系统采用centos6.8 x64 2.6.32-642.el6.x86_641.首先安装好jdk环境本次采用jdk-8u111-linux-x64.gz  jdk和jre的安装目录要不同,否则的话lib目录下没有dt.jar 和tools.jar  要配置好环境变量如下   vi /etc/profile   #add zwy 2017-08-29   export JAVA_HOME=/home/zhang/java/jd

Linux之部署Tomcat及其负载均衡

Linux之部署Tomcat及其负载均衡 一.案例 案例要求 1. 在1.10和1.20上分别部署tomcat服务,并创建java的web站点.在本机上分别验证是否能访问创建的web站点(如http://192.168.1.10:8080/index.jsp) 2. 在1.100的主机上部署nginx服务,修改主配置文件,实现nginx为前端,tomcat为后端的负载均衡的功能. 3.在client主机访问nginx服务器,验证是否能实现负载均衡. 二.开始部署 1.环境配置 (使用Vmware

Apache + Tomcat + JK 实现负载均衡和集群(状态复制)

原文请见http://www.cnblogs.com/dennisit/p/3370220.html 本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面对应的应用. 模块介绍 - Apache作为Web服务器,用于处理静态Http请求: - Tomcat作为应用服务器(Servlet容器),处理动态请求: - JK 作为Apache与Tomcat之间的桥梁,实现了Apache与Tomcat一对多的对应,使后端Tomcat负载均衡. 开发环境 - Windo

Centos基于Apache的Tomcat负载均衡和集群

Centos基于Apache的Tomcat负载均衡和集群 一.背景原理1.tomcat 做个WEB服务器有它的局限性,处理能力低,效率低.承受并发小(1000左右).但目前有不少网站或者页面是JSP的.并采用了tomcat做为WEB,因此只能在此基础上调优.2.目前采取的办法是Apache + Mod_JK + tomcat 来解决一部分请求,用户访问的是apache,但有jsp页面的时候才会去请求tomcat.如果量一大,那么tomcat无法承受,那么只能做tomat集群,Apache + M

Apache + Tomcat + JK 实现负载均衡和集群

本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面对应的应用. 模块介绍 - Apache作为Web服务器,用于处理静态Http请求: - Tomcat作为应用服务器(Servlet容器),处理动态请求: - JK 作为Apache与Tomcat之间的桥梁,实现了Apache与Tomcat一对多的对应,使后端Tomcat负载均衡. 开发环境 - Windows 7操作系统 - Java SE8 - Apache 2.2.14    (本地安装路径:D:\A

Apache、Tomcat负载均衡与集群

一. 环境准备 1.软件下载 a) apache_2.0.55-win32-x86-no_ssl.msi: b) apache-tomcat-5.5.17.rar c) mod_jk-apache-2.0.55.so 下载地址: http://download.csdn.net/detail/crazyiter_com/4178657 2.软件安装 a)  Apache安装路径为:E:\ide\apache\Apache2 (具体可以根据自己的盘符而定) b) Tomcat放置位置和名称注意:

linux下apache服务搭建

实验拓扑:                          Linux Client -----RHEL5.9(vmnet1)----------(vmnet1)                          Win7 Client 实验一:查看默认HTTP配置     找到默认红帽欢迎页面 (/etc/httpd/conf/httpd.conf ---->Include ----> /etc/httpd/conf.d  ----> welcome.conf  ----> /

Linux下利用nginx实现负载均衡

linux下利用nginx实现负载均衡 前提条件: 1,安装好jdk 2,安装好tomcat和nginx(可以参考我前两篇文章) 满足前提条件后,要用nginx实现负载均衡,主要是靠配置nginx的配置文件. 我们要实现的架构图如下: 1.分别部署3个tomcat,端口分别为8080,8081,8082 drwxr-xr-x 9 root root 4096 Mar 11 13:41 tomcat8-8080drwxr-xr-x 9 root root 4096 Mar 11 17:27 tom