`
yangli
  • 浏览: 61885 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

centos环境下apache集群tomcat与负载均衡配置笔记

阅读更多
系统环境:centos4.8
应用版本:
apache:2.2.3
tomcat:7.0.14
配置要点:
1.tomcat session复制:
server.xml,在<Engine>节点下添加:
<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"
//tcpListenPort如果是同一机器部署两个tomcat7应用,则修改tomcat7_b为4001,以免冲突. 不同机器下,不用更改此项.
                      port="4000"
                      autoBind="100"
                      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"/>
// 如果tomcat启动出现:严重: FarmWarDeployer can only work as host cluster subelement! 可以将此节点去掉 
          <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>


2. 为tomcat增加唯一标示(个人理解),添加jvmRoute属性,apache负载均衡用到
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7_1">
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7_2">

3.同一机子上有多个tomcat,SHUTDOWN 端口不能冲突。
tomcat7_1:<Server port="8006" shutdown="SHUTDOWN">
tomcat7_2:<Server port="8007" shutdown="SHUTDOWN">

4.同理,http端口和ajp端口都不能冲突:
eg:
<connector port="8082" protocol="HTTP/1.1" onnectionTimeout="20000" edirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

5. 为了方便测试,直接用到了webapps 中的examples工程,
tomcat7_1\webapps\examples\WEB-INF\web.xml中加入<distributable/>
tomcat7_2\webapps\examples\WEB-INF\web.xml中加入<distributable/>
两个tomcat中examples工程都加入test.jsp
代码如下:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster Test</title></head>
<body>
<%
  //HttpSession session = request.getSession(true);
  System.out.println(session.getId());
  out.println("<br> SESSION ID:" + session.getId()+"<br>");  
    String name = request.getParameter("name");
  if (name != null && name.length() > 0) {
     String value = request.getParameter("value");
     session.setAttribute(name, value);
  }  
	out.print("<b>Session List:</b>");  
	Enumeration<String> names = session.getAttributeNames();
	while (names.hasMoreElements()) {
		String sname = names.nextElement(); 
		String value = session.getAttribute(sname).toString();
		out.println( sname + " = " + value+"<br>");
        System.out.println( sname + " = " + value);
   }
%>
  <form action="test.jsp" method="post">
    session名称:<input type=text size=20 name="name">
     <br>
    session值:<input type=text size=20 name="value">
     <br>
    <input type=submit value="提交">
   </form>
</body>
</html>


在此,session复制工作完毕,测试:
访问tomcat7_1输入session名称和值提交以后再访问tomcat7_2,如果session列表中有tomcat7_1的名称和值说明session同步工作成功!


6.负载均衡配置:

负载方式有jk和 mod_proxy
jk方式曾经已经做过,本次尝试mod_proxy

配置步骤:
httpd.conf中增加以下模块:
LoadModule proxy_module modules/mod_proxy.so  
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so  
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
LoadModule proxy_connect_module modules/mod_proxy_connect.so  
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so  
LoadModule proxy_http_module modules/mod_proxy_http.so 


再增加:

#虚拟机配置,负载均衡配置
<VirtualHost *:80>
ServerAdmin xxxx@qq.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
#ErrorLog "logs/error.log"
#CustomLog "logs/access.log" common
</VirtualHost>

ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://内网ip:8009 loadfactor=1 route=tomcat7_1  smax=5 max=20 ttl=120 retry=300 timeout=15
BalancerMember ajp://内网ip:8010 loadfactor=1 route=tomcat7_2  smax=5 max=20 ttl=120 retry=300 timeout=15

# status=+H为配置热备,当所有机器都over时,才会请求该机器
#BalancerMember http://xxxxxxx:8009 status=+H

#lbmethod=byrequests 按照请求次数均衡(默认)
#lbmethod=bytraffic 按照流量均衡
#lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
ProxySet lbmethod=bytraffic
</proxy>

配置完毕。将今天的奋战结果记录下来,方便以后参考。好记性不如iteye的博客,
分享到:
评论

相关推荐

    【负载均衡】在centos下面做apache和tomcat的负载均衡

    - **虚拟主机(Virtual Hosts)**:在负载均衡环境中,Apache通常作为前端服务器,处理来自客户端的请求。配置虚拟主机可以让Apache同时处理多个域名或应用。 - **JK模块(mod_jk)**:这是Apache与Tomcat之间通信...

    Apache+tomcat实现负载均衡

    在Apache与Tomcat的组合中,Apache通常作为前端负载均衡器,通过HTTP代理或反向代理功能将请求转发给后端的多个Tomcat实例。以下是实现这一目标的主要步骤: 1. **安装和配置Apache**:首先,你需要在服务器上安装...

    Linux环境搭建 Apche+Tomcat 集群负载均衡

    ### Linux环境下Apache+Tomcat集群负载均衡搭建详解 在企业级应用中,为了提升服务器的稳定性和处理能力,常采用Apache+Tomcat集群的方式来进行负载均衡。本文将详细介绍如何在Linux环境下搭建Apache+Tomcat集群...

    Apache的Tomcat负载均衡和集群(linux,centos)

    Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod

    CentOS下apache负载均衡与JBoss集群配置

    在本文中,我们将讨论在CentOS操作系统环境下,如何进行Apache负载均衡与JBoss集群的配置。负载均衡和集群配置是提高网站可用性、扩展性和性能的关键技术。通过这篇文章,我们会了解到详细的配置步骤,以及它们在...

    CentOS系统下Apache负载均衡、Tomcat集群所需安装包

    CentOS系统下Apache负载均衡、Tomcat集群所需安装包:apache-tomcat-8.0.15.tar.gz,autoconf-2.69.tar.xz,httpd-2.2.9.tar.gz,libtool-2.4.2.tar.gz,tomcat-connectors-1.2.37-src.tar.gz,zlib

    centos源码安装apache-tomcat-8.0.21

    CentOS源码安装Apache Tomcat 8.0.21 Apache Tomcat是一款流行的Java Web服务器,广泛应用于企业级Web应用程序。CentOS是流行的Linux发行版,提供了稳定、安全的服务器环境。本文将指导您如何在CentOS系统上源码...

    Apache2.2和Tomcat7集成负载均衡(软件和教程)

    在现代Web应用环境中,为了提供高可用性和性能优化,经常需要将HTTP服务器(如Apache)与应用服务器(如Tomcat)进行集成,并实现负载均衡。Apache2.2和Tomcat7的集成能够充分利用两者的优势:Apache作为前端服务器...

    nginx的安装及tomcat集群负载均衡配置

    ### Nginx与Tomcat集群负载均衡配置详解 #### Nginx 安装与配置 **一、Nginx 在 Windows 下的安装** 1. **下载与解压** 下载 Nginx 的稳定版(例如 nginx-1.12.1.tar.gz),将其解压缩到 D:\ 目录下。 2. **...

    CentOS Apache配置详解

    CentOS Apache 配置详解 Apache 是一个流行的网页服务器软件,CentOS 也是一个流行的 Linux 发行版。在本文中,我们将详细介绍如何在 CentOS 上配置 Apache,以便实现网页服务器的功能。 一、 Apache 的安装和...

    tomcat+linux负载均衡集群配置

    本文将详细介绍如何利用 Apache 和 Tomcat 在 Linux 环境下构建一个高效的负载均衡集群系统。 **环境描述:** - **Apache 服务器配置:** - IP 地址: 192.168.1.20 - 安装软件: httpd-2.2.6 - 安装路径: `/usr/...

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

    本篇文章将详细介绍如何在 Linux 环境下搭建基于 Apache 和 Tomcat 的集群负载均衡,并实现 session 复制,以确保在多台服务器之间能够无缝地进行会话共享。 #### 二、环境配置 在部署 Apache+Tomcat 集群之前,...

    Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程

    总之,Linux环境下Apache+Tomcat+JK的负载均衡和群集配置是一个涉及多个组件集成的过程,需要对Web服务器、应用服务器和连接器的内部工作原理有深入理解。这个过程中,正确配置和调试是成功的关键,同时,随着技术的...

    Nginx+Tomcat高性能负载均衡集群搭建(模板).zip

    本教程将深入探讨如何利用Nginx实现对Tomcat的负载均衡,构建一个高可用的集群。 首先,理解负载均衡的基本概念至关重要。负载均衡是一种技术,通过分散网络流量到多个服务器,确保单个服务器不会过载,提高系统...

    Linux下Apache+Tomcat集群指南

    本文档旨在详细介绍如何在Linux环境下搭建Apache+Tomcat集群,并实现负载均衡及Session复制等功能。该文档适合希望提高Web应用程序性能与可靠性的IT技术人员阅读。 **1.2 环境配置** 为了确保集群的稳定性和一致性...

    CentOS7下Nginx+Tomcat负载均衡及Redis共享Session解决方案

    本解决方案将详细介绍如何在`CentOS7`上配置`Nginx`以实现`Tomcat`的负载均衡,并利用`Redis`进行Session共享,以提高系统的可扩展性和用户会话的一致性。 首先,我们需要在`CentOS7`上安装`Nginx`。可以使用`yum`...

    nginx+tomcat实现负载均衡1

    总之,"nginx+tomcat实现负载均衡1"的学习将涵盖Nginx的基本操作、负载均衡配置、与Tomcat的集成以及高可用性的实现,这些都是构建高性能Web服务的关键技术。通过这些知识,开发者可以设计出更健壮、高效的分布式...

    apache+tomcat整合配置

    如果需要更高可用性,可以将多个Tomcat实例配置成集群,通过Apache的mod_proxy_balancer模块进行负载均衡。这将提高服务的容错能力和扩展性。 8. **日志管理** 考虑将Apache和Tomcat的日志分开管理,以便更好地...

    在CentOS中给Apache Tomcat绑定IPv4地址的教程.docx

    本教程将指导您如何在CentOS 7上配置Apache Tomcat,使其绑定到IPv4地址。 首先,确认您的系统中已经安装了Apache Tomcat。可以通过运行`su tomcat`命令切换到tomcat用户。这个用户通常拥有运行和管理Tomcat所需的...

Global site tag (gtag.js) - Google Analytics