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

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

1】 下载安装

       httpd-2.2.15-win32-x86-no_ssl.msi    网页服务器

       32-bit Windows zip                            tomcat

       mod_jk-1.2.30-httpd-2.2.3.so             Apache/IIS 用来连接后台Tomcat的模块,支持集群和负载均衡

       JK 分为两个版本 1,x 和 2.x ,其中 2.x 并不是最新的版本,它是 JK 的另外一个分支,后不知何因没有继续开发,因此2.x 版本已经废弃

       安装httpd-2.2.15-win32-x86-no_ssl.msi 到指定目录,我安装的是C:\Program Files\Apache2.2,以后这个目录将用Apache_Home代替

       安装tomcat,我是将两个tomcat进行集群,所以安装两个tomcat,路径分别为:F:\tomcat\tomcat1,F:\tomcat\tomcat2,以后这两个目录将用tomcat1_Home,tomcat2_Home代替

2】 配置Apache_Home\conf\httpd.conf

      在httpd.conf文件的最后一行写入include "C:\Program Files\Apache2.2\conf\mod_jk.conf"

3】 配置mod_jk.conf文件

      在Apache_Home\conf下建立mod_jk.conf文件

      配置内容:

      #加载mod_jk Module
         LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so

         将下载的 mod_jk-1.2.30-httpd-2.2.3.so 文件放入到Apache_Home\modules下
      # 配置 mod_jk
      #加载集群中的workers
         JkWorkersFile conf/workers.properties
      #加载workers的请求处理分配文件
         JkMountFile conf/uriworkermap.properties
      #指定jk的日志输出文件
         JkLogFile logs/mod_jk.log
      #指定日志级别
         JkLogLevel warn
     #指定哪些请求交给tomcat处理,"controller"为在 workers.propertise里指定的负载分配控制器名
         JkMount /* controller

4】  配置workers.propertise文件

       在Apache_Home\conf下建立workers.propertise文件

       配置内容:

       #server 列表
         worker.list=controller,tomcat1,tomcat2
      #========tomcat1========
      #ajp13 端口号,在tomcat下server.xml配置,默认8009
        worker.tomcat1.port=8009
      #tomcat的主机地址,如不为本机,请填写ip地址
        worker.tomcat1.host=localhost
        worker.tomcat1.type=ajp13
     #server的加权比重,值越高,分得的请求越多
        worker.tomcat1.lbfactor=1
     #========tomcat2========
     #ajp13 端口号,在tomcat下server.xml配置,默认8009
       worker.tomcat2.port=9009
     #tomcat的主机地址,如不为本机,请填写ip地址
      worker.tomcat2.host=localhost
      worker.tomcat2.type=ajp13
    #server的加权比重,值越高,分得的请求越多
       worker.tomcat2.lbfactor=1
    #========controller,负载均衡控制器========
    #server名为controller,用于负载均衡
      worker.controller.type=lb
   #重试次数
      worker.retries=3
   #指定分担请求的tomcat
     worker.controller.balanced_workers=tomcat1,tomcat2
   #粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的,即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False
     worker.controller.sticky_session=false
  #设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,也有设置为0才可以的
     worker.controller.sticky_session=1
  #worker.controller.sticky_session_force=1
  #worker.status.type=status

5】 配置uriworkermap.properties文件

      在Apache_Home\conf下建立uriworkermap.properties文件

      配置内容:

     #所有请求都由controller这个server处理
     /*=controller
     #所有包含jkstatus请求的都由status这个 server处理
     #/jkstatus=status
     #这里的"!”是“非”的意思。
     !/*.gif=controller
     !/*.jpg=controller
     !/*.png=controller
     !/*.css=controller
     !/*.js=controller
     !/*.htm=controller
     !/*.html=controller

6】修改tomcat1_Home\conf\server.xml配置

      Starting Coyote HTTP/1.1 on http-8081 默认端口为8080,修改为8081

     <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

      JK: ajp13 listening on /0.0.0.0:8009 修改端口必须与workers.propertise文件内worker.tomcat1.port=8009一致

     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

     需要添加的内容:

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">   <!--tomcat1将与tomcat2黏贴session 在这里指定黏贴对象-->

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <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="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"/>

          <!-- <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>   

      上面部分如果需要详细的说明可以看webapps\docs\cluster-howto.html

7】修改tomcat2_Home\conf\server.xml配置

      Starting Coyote HTTP/1.1 on http-8082 默认端口为8080,修改为8082

     <Connector port="8082" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

      JK: ajp13 listening on /0.0.0.0:9009 修改端口必须与workers.propertise文件内worker.tomcat2.port=9009一致

     <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />

     需要添加的内容:

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">   <!--tomcat2将与tomcat1黏贴session 在这里指定黏贴对象-->

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <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="4001"  
                      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"/>

          <!-- <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>   

      上面部分如果需要详细的说明可以看webapps\docs\cluster-howto.html

8】session黏贴(共享)方面,如果session中存 放的为javabean,javabean必须实现Serializable接口,如果没有实现会报错误 Exception thrown: class java.lang.IllegalArgumentException

 

Apache负载均衡与Tomcat集群配置学习(Windows环境) Java面试核心知识点一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!Java面试核心知识点[外链图片转存中…(img-J4Z4UwAb-1710395203007)]Java面试核心知识点一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间![外链图片转存中…(img-XdWOEY6d-1710395203008)]Java面试核心知识点本文已被。 阅读详情

相关推荐

tomcate优化,集群

tomcate优化,集群

Tomcat 集群介绍

通过多组实验,使用不同技术实现了 session 持久机制。

wang11876的博客 2174

PTA 学生信息的那些操作:添加记录(结构体)

这是河南工业大学自主命题的一道基础题,题目如下: 有一学生成绩表,包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现,添加一个新的学生信息,且使成绩表仍按学号有序;若待添加的学号与已有学号重复,则输出错误信息,拒绝添加。 输入格式: 首先输入一个整数n(1<=n<=100),表示学生人数; 然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。 最后一行输入一个待添加的学生信息,包括学号

weixin_63617665的博客 3156

Tomcat集群搭建超详细

Tomcat集群搭建超详细

weixin_50556778的博客 6347

ZYNQ-Video out IP与Video Timing Controller IP协同工作模式解析

本文深入解析了ZYNQ平台上Video out IP与Video Timing Controller IP的协同工作模式,详细介绍了它们的架构、工作原理及配置要点。通过AXI4-Stream接口实现高效视频数据传输,并结合HDMI输出系统设计实践,为开发者提供了实用的调试技巧和性能优化建议。

redis7keeper的博客 636

open-web UI 实用指南

open-web UI 类似于chatgpt的界面,可以私有化模型本地部署,也可以用商业模型.本文只是用开源模型. 它以实现多模态AI聊天 , AI 翻译 , 语音转文本, 文本转语音, 文生图,代码助手,可谓利器。

szmars的博客 3万+

Tomcat 集群部署

环境准备​ 虚拟机是通过软件模拟出具有完整硬件系统的功能​ 为什么Java需要JVM虚拟机​ 早期C语言不支持跨平台,如果C语言想要在Windows Linux Mac上运行,需要进行分别编译,那么在Linux上有很多优秀的软件,如果需要在Windows上使用需要重新编译,移植性差而Java则不同,Java是可以跨平台,只需要将源码进行一次编译,能够在不同的操作系统运行JAVA是如何做到的?​ 它只需要在Windwos Linux系统上运行一个jvm,这样我们能将J

AHui_优快云的博客 2499

Cadence HDL原理图库避坑指南:从Excel导入引脚到解决‘V- V+’报错(附FPGA实例)

本文详细介绍了Cadence HDL原理图库的高效构建与排错方法,重点讲解如何从Excel智能导入引脚数据并优化FPGA封装设计。通过数据预处理、智能导入和深度排错三个关键阶段,帮助工程师避免常见错误如‘V- V+’报错,提升设计效率和准确性。

weixin_28739079的博客 234

零基础搭建Tomcat集群(超详细)

零基础搭建Tomcat集群,配图超30+张,做到完完全全一步一步零基础带你搭建Tomcat集群!

緑水長流*z 1万+

uni-app开发-第3篇:uni-app 页面与路由

本文详细介绍了 uni-app 中的页面开发与路由管理。首先,页面是应用的基础单元,创建页面时需在pages目录下新建文件夹和.vue文件,页面结构由<template>、<script>和<style>三部分组成。uni-app 页面生命周期函数包括onShow、onReady、onHide和onUnload,分别用于处理页面显示、渲染完成、隐藏和卸载时的逻辑。其次,路由管理通过pages.json文件配置页面路径和样式,并提供uni.navigateTo等方法进行路由

无 415

【GameFramework框架内置模块】9、有限状态机(FSM)

这篇文章分享FSM有限状态机,了解过StarForce源码的同学相比都比较了解,GameFramework框架给我们抽象了一个Procedure流程的概念。这个Procedure流程可以方便的处理我们游戏从启动到游戏的各个流程阶段的处理逻辑,实现的核心就是FSM状态机,内部的Procedure流程就是不同的FsmState状态。接下来,就是FSM有限状态机的教程了。有限状态机(Finite-state machine,FSM)

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2530

Tomcat的集群

在一个物理机器上进行集群 在同一个物理服务器上进行部署两个服务器。 首先需要两个Tomcat的服务器(就是tomcat的解压安装了,这里就不进行赘述了) 找到其中的一个Tomcat中conf中的server.xml 找到以下标签()的位置,然后将下边的复制到此 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">

weixin_45648789的博客 541

​ISP算法及架构分析介绍

ISP算法及架构分析介绍ISP即Image Signal Processor,是一种图像处理架构,不是我们用的下载器。ISP其实算是图像处理的一个特例,一般应用于前端设备(相对于SENSOR),从结果上看就是将RAW数据转换成压缩后的RGB(一般)数据,供后续CPU使用(识别、压缩等)。市面上很少有直接介绍ISP的书籍或者资料,今天我们主要是聊一聊ISP算法的架构,这样大...

OpenFPGA的博客 5404

web集群之一 linux下apache+tomcat负载均衡配置-笔记

篇幅较长,会不断补充、修改、完善 ------------------------------------------------ 传统的Java Web项目是通过tomcat来运行和发布的。但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的。tomcat 处理能力低,效率低,承受并发小(1000左右)。当用户请求较少时,单一的tomcat能够快速响应用户请求,但如果访

lgstudyvc的专栏 3790

SAP 交货成本(运费)

交货成本: 业务场景: 有些产品或供应商,会产生交货成本(运费、关税等) 业务模拟(以运费为例): 1、运费在采购订单体现:计划运费 ME21N创建采购订单,并且包含运费: MIGO收货时: 由上可知,MIGO时运费最终体现在库存(存货)科目中(V),或者价格差异中(S计价时)。 MIRO发票校验: 运费最终体现在单独科目中: 后台配置: 运费在发票时候...

willieyuan的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Apache之Tomcat集群配置-Tomcat负载均衡

网上收集的 : Apache之Tomcat集群配置-Tomcat负载均衡(http://www.jfong.cn/solution-19.html) 一、 环境说明 Windows XP apache_2.0.59-win32-x86-no_ssl.msi     mod_jk-apache-2.0.59.so               apache-tomcat-5.5.23.zip

zhujyy110的专栏 2421

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Apache server结合Tomcat配置集群与负载均衡

随着Apacheserver的版本更新,目前常用的集群以及负载均衡的配置有两种,一种是用mod_jk来处理的,另一种是用Apache server自己的原生模块来实现,下面就分别介绍这两种方法

爱清清的专栏 1169

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CentOS系统下Apache负载均衡、Tomcat集群以及项目热部署配置

关于APACHE负载均衡与TOMCAT集群配置的资料网上有很多,但是几乎是一个版本一个样,而且在配置的过程中,可能是由于版本的不同,或者系统环境的不同,出现各种各样的错误,下面将我自己在虚拟机下配置的过程记录下来,由于设备不够,所以tomcat节点与apache服务器都配置在同一Centos系统下。         一、配置环境:           1、Centos 6.3  32位Linu

秋风瑟瑟 7580

apache tomcat linux集群配置,apache tomcat集群配置和负载均衡

1】 下载安装网页服务器Apache/IIS 用来连接后台Tomcat的模块,支持集群和负载均衡JK 分为两个版本 1,x 和 2.x ,其中 2.x 并不是最新的版本,它是 JK 的另外一个分支,后不知何因没有继续开发,因此2.x 版本已经废弃安装到指定目录,我安装的是C:\Program Files\Apache2.2,以后这个目录将用Apache_Home代替安装tomcat,我是将两个t...

weixin_39589693的博客 173

apache jk_mod和tomcat集群做负载均衡简单配置

刚初步了解了apache的配置,试着用apache和tomcat集群来做负载均衡 一。

炒饭的专栏 717

apache+tomcat集群的负载均衡配置方式

有些时候我们需要使用多个tomcat来独立各个应用,而且又要使用80端口,这时候用apache+多个tomcat的方式是一种比较好的选择。 除此之外,我们采用这种方式有什么好处呢?1.提升静态文件的处理性能;2.利用web容器做负载均衡,容错处理;3.无缝的升级应用 环境 apache:httpd-2.2.17-win32-x86-openssl-0.9.8o.zip  http://w

博观而约取 厚积而薄发 429
上一篇: xml 解析技术
下一篇: redhat 下 rpm 指令
MyJavaBlog
博客等级 码龄16年 11粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值