一.需要的软件

  1.jdk1.5以上

  2.Tomcat6以上

  3.Apache2.2以上 ,地址http://apache.dataguru.cn//httpd/binaries/win32/ ,名称:httpd-2.2.25-win32-x86-no_ssl.msi

  4.jk,地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/ ,名称mod_jk-1.2.31-httpd-2.2.3.so

二.安装Apache,记住安装的目录

三.将mod_jk-1.2.31-httpd-2.2.3.so文件拷入Apache的D:\Apache Software Foundation\Apache2.2\modules 目录下

四.打开Apache的httpd.conf文件,添加外部配置文件引入,在文件的最后面添加。

include "D:\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"

五.创建mod_jk.conf文件,并写入一下配置

 #加载mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so #指定 workers.properties文件路径
JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller

六.在Apache配置文件目录下创建workers.properties文件,并写入配置

#server
worker.list = controller,tomcat1,tomcat2
#========tomcat1========
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1 #========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=false #粘性会话
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1

七.配置Tomcat

  1.第一个Tomcat不需要修改端口,但是需要放开  

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

其中Engine标签已经开放只需要添加名称jvmRoute="" 这里面的名字需要自己起,要和worker.properties里的名称一样

  2.第二个Tomcat需要改端口,改的目的是为了Tomcat在同一台机器运行不冲突即可,然后在开放上面的两个标签。

八.测试项目

  创建一个动态web项目,新建一个index.jsp文件,内容为

<%@ page contentType="text/html; charset=utf-8" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.println("<b>Session 列表</b><br>");
System.out.println("============================");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="index.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>

九.在web.xml文件中添加一个标签,表示这个项目是可分配的

<distributable/>

  如果Tomcat所有的项目都需要共享,则在Tomcat的conf/context.xml添加即可

十.将测试项目分别部署到Tomcat上,启动Apache服务,在启动两个Tomcat,启动顺序任意。

  1.在本机访问地址为:http://localhost/项目名称/index.jsp

  2.成功的结果,不管怎样刷新页面SessionID都不变,提交的值不会消失

    ID F219C85735A0F7DE958ED3431BF4BEA1.tomcat2

    ID F219C85735A0F7DE958ED3431BF4BEA1.tomcat1

十一.软件解释

  1.Apache  

    支持最新的HTTP/1.1通信协议
    拥有简单而强有力的基于文件的配置过程
    支持通用网关接口
    支持基于IP和基于域名的虚拟主机
    支持多种方式的HTTP认证
    集成Perl处理模块
    集成代理服务器模块
    支持实时监视服务器状态和定制服务器日志
    支持服务器端包含指令(SSI)
    支持安全Socket层(SSL)
    提供用户会话过程的跟踪
    支持FastCGI
    通过第三方模块可以支持JavaServlets

  2.jk

    mod_jk 简称JK,是Apache服务器的一个可插入模块,用以为Apache或IIS服务器提供处理JSP/Servlet的能力。

    Tomcat本身也可以作为Web服务器使用,但是其功能远不及Apache强大,所以Tomcat往往作为JSP/Servlet容器使用

    mod_jk实质上是Apache与Tomcat的连接器,并藉此附带提供集群和负载均衡的功能。

  3.Tomcat+Apache+mod_jk集成

     实现了负载均衡。

       跨平台。

     优势:配置简单,避免了编译webapp.so的麻烦,

     缺点:在linux下找mod_jk不容易,mod_jk已经不再更新

    

Apache+Tomcat+mod_jk负载均衡的更多相关文章

  1. Apache+Tomcat部署负载均衡(或集群)

    本来只打算写Tomcat集群部署,简化Apache和Tomcat整合过程的.后来想了想,这样不便于没有用过Apache的朋友来学习本文内容.于是干脆加大篇幅,让对Apache不了解的朋友能对Apach ...

  2. apache+tomcat配置负载均衡,实现http与websocket接口分压

    一.应用场景 在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量.Apache本身带有一些模块,可以完成对应用 ...

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

    实验拓扑图: 一.搭配环境 (1).Tomcat的安装和配置 Tomcat_a的ip:192.168.55.229 Tomcat_b的ip:192.168.55.231 Tomcat的需要安装jdk和 ...

  4. 基于Apache+Tomcat实现负载均衡

    1.基于Apache和tomcat实现负载均衡 准备三个虚拟机一个安装Apache两个安装Tomcat 关闭防火墙 systemctl stop firewalld Iptabled -F Seten ...

  5. apache、mod_jk负载均衡与tomcat集群

    最近需要搭建apache和tomcat的集群,实现静态网站直接通过apache访问,动态网站转交给tomcat处理,实现负载均衡和tomcat集群配置. apache安装 wget http://ap ...

  6. centos6.5 apache+tomcat结合 负载均衡

    一. 负载均衡:根据 uri 表达式把请求分发给各个服务器处理.如:/*.jsp = lb_s  就是说把所有jsp请求交给lb_s , 当然它是个Tomcat. 二. 安装配置mod_jk    m ...

  7. apache tomcat搭建负载均衡(实现集群中的session同步)

    原理:tomcat 做个WEB服务器有它的局限性,处理能力低,效率低.承受并发小(1000左右).但目前有不少网站或者页面是JSP的.并采用了tomcat做为WEB,因此只能在此基础上调优. 目前采取 ...

  8. Apache+Tomcat实现负载均衡

    反向代理负载均衡 (Apache2+Tomcat7/8) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的.这种代理方 ...

  9. Linux搭建Apache+Tomcat实现负载均衡

    一.首先需要安装java,详见http://www.cnblogs.com/fun0623/p/4350004.html 二.编译安装Apache,详见http://www.cnblogs.com/f ...

随机推荐

  1. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  3. 利用最新版的RubyMine2016.2开发Ruby On Rails 程序

    经过我的前两篇博文 ”Ruby On Rails环境搭建“ 和”Ruby On Rails 环境搭建MySQL数据库连接“ 我们已经具备了开发Ruby On Rails程序的一切要素,但是天天对着do ...

  4. /Users/alamps/AndroidStudioProjects/Demo10ScrollView

    .define xml <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" andr ...

  5. ViewPager相互嵌套,导致子ViewPager无法滑动,且子ViewPager中的view无法被点击

        场景:当使用ViewPager进行嵌套的时候,子viewPager是无法进行嵌套的,因此我们要重写ViewPager类,并重写里层viewPager类中的onTouchEvent方法,调用其父 ...

  6. 从C#的Singleton设计模式

    近来,我在学习如何在C#语言中使用设计模式中读到一些资料,其中有关Singleton设计模式引起了我的注意. 学过设计模式的开发者都知道Singleton模式.我想简要地解释一下这个设计模式是为那些尚 ...

  7. 【py】安装ipython-notebook

    os:ubunutu(debian)-based linux 分两步: 安装ipython及其依赖包 sudo apt-get install ipython-notebook   安装可选的附加工具 ...

  8. 自定义Writable、RawComparatorWritable、comparators(转)

    自定义Writable hadoop虽然已经实现了一些非常有用的Writable,而且你可以使用他们的组合做很多事情,但是如果你想构造一些更加复杂的结果,你可以自定义Writable来达到你的目的,我 ...

  9. Android开发的进阶之路

    客户端开发工程师,简单地从某几个方面描述一下个人理解里不同的等级: 1.初级的可以熟练使用系统框架提供的组件,搭建所需应用程序: 2.中级的,会对系统框架中如view绘制.broadcast机制.内存 ...

  10. 启用WCF测试客户端的相关技巧

    在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二 ...