Apache + tomcat实现server集群

主要參照:http://blog.csdn.net/welun521/article/details/4169879

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnJpbmRlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

採用JK_PROXY方式实现。兴许会研究ajp方式。也会出文档。待续……!

一、apache安装

主要參照:http://llying.iteye.com/blog/335342

注:以上输入必须按给的格式。邮箱最好输入一个可用的。我在第一次安装的时候就是没按格式输入,结果不能启动,仅仅好卸了重装,应该是能够改动的,但没研究^-^!

二、tomcat安装

三、apache配置

注:改动httpd.conf时,最好用记事本打开。不要用别的edit工具!

这是配置后的conf文件夹,在apache配置时,特别注意,首先给httpd.conf做个备份,由于在配置的过程中发现一些非常怪异的现象。无缘无故就不能用了!最发做好备份,万一配置错误起码能恢复到最初状态,这个应该是一个各格程序猿的基本涵养吧^_^!

以下開始具体配置:

1、     将mod_jk-1.2.26-httpd-2.2.4.so在Apache2/modules文件夹下

2、     创建mod_jk.conf文件,内容例如以下:

#载入mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller
#假设还要指定*.do也进行分流就再加一行
#JkMount /*.do controller
#假设你想对全部的请求进行分流仅仅须要写成
JkMount /* controller

注:有用过程中最好把凝视性的汉字去掉,防止出错!(不须要的用户“#”凝视掉)

事实上不加这个文件也能实现。只是须要在httpd.conf中配置,为不影响原文件,就再加个吧!

有了这个文件后。我们仅仅须要在httpd.conf中加上:

Include conf/mod_jk.conf

就能够了。有些说加到文件最后,但我还是习惯放在有Include标签的后面,这个随便哈!

3、     在conf下加入work.properties文件。内容例如以下:

worker.list =controller,tomcat1,tomcat2  #server 列表
#========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=8109 #ajp13端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址。如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 2 #server的加权比重。值越高,分得的请求越多 #========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=1

以上配置都非常明白。假设还想加入tomcat。按上面配置加入就可以。

四、Tomcta配置

Tomcata配置并无特别之处,基本的是要是在同一台机器上配置不同tomcat时须要注意的是要将第二个tomcat的port号改动下,不要与第一个冲突,不然无法启动!

在session共享时,须要加入例如以下配置,在tomcat的server.xml中并没有这么多,这是在网上查的,只是,已经測试过,能够正常使用!

配置例如以下:

<Cluster   className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"mapSendOptions="6"/>
<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" <span style="color:#ff0000;">port="4001"</span>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"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
<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.ClusterSessionListener"/>
</Cluster>

红色部分须要注意下,两个tomcat不要反复,其他不用改动。

如此。就能实现session共享。

五、測试项目

tomcat1中index.jsp内容例如以下:

<%@ page language="java"contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ pagesession="false"%>
<!DOCTYPE htmlPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title>Inserttitle here</title>
</head>
<body>
This is my JSP page.tomcat-A
<br>
<%
HttpSessionmysession = request.getSession(false); if (mysession ==null) {
mysession= request.getSession(true);
mysession.setAttribute("appname","value-A");
out.println("newsession:" + mysession.getId());
} else {
out.println("oldsession:" + mysession.getId());
}
out.println("appname="+ mysession.getAttribute("appname"));
System.out.println("1111111111111111111111111111111111111111111111111111");
%> </body>
</html>

tomcat2下的index.jsp内容例如以下:

<%@ pagelanguage="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ pagesession="false"%>
<!DOCTYPE htmlPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title>Inserttitle here</title>
</head>
<body>
This is my JSP page.tomcat-B
<br>
<%
HttpSessionmysession = request.getSession(false); if (mysession ==null) {
mysession= request.getSession(true);
mysession.setAttribute("appname","value-B");
out.println("newsession:" + mysession.getId());
} else {
out.println("oldsession:" + mysession.getId());
}
out.println("appname="+ mysession.getAttribute("appname"));
System.out.println("22222222222222222222222222222222222222222222222222");
%> </body>
</html>

最后測试结果:

页面效果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnJpbmRlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

注意这几个点!

jk_proxy实现apache+tomcat负载均衡的更多相关文章

  1. Linux平台上搭建apache+tomcat负载均衡集群

    传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...

  2. Apache+Tomcat负载均衡问题集锦

    之前在windows 环境下搭建了下apache+tomcat负载均衡(不会的能够參考之前的文档,文档对于linux和windows都适用),一帆风顺.没有出现不论什么问题.今天尝试着在linux下搭 ...

  3. Windows下apache+tomcat负载均衡

    Windows下apache+tomcat负载均衡 网上已经有很多的资料,但是很多都比较零碎,需要整合一起才能搭建出理想的负载均衡,正好前段时间搭建了windows与linux下的负载均衡,在此记录, ...

  4. 1.Apache+Tomcat负载均衡+集群配置

    1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...

  5. apache+tomcat 负载均衡

    说明:本篇不面向无开发基础的人员,所以不会有软件下载,jdk安装等步骤.比较久远的东西了...... 1.系统环境 win7-64.jdk 2.软件列表: apache_2.2.24-x64-no-s ...

  6. linux下一个apache+tomcat负载均衡和集群

    先说一下我的环境 一个ubuntu虚拟机, 一个apache2.2示例 两tomcat1.7示例 1.安装apacheserver sudo apt-get install apache2 假设要重新 ...

  7. Apache+Tomcat负载均衡集群搭建

    1.所需软件 apache_2.2.4-win32-x86-no_ssl.apacheserver mod_jk-apache-2.2.4连接器,连接apache和tomcat apache-tomc ...

  8. apache+tomcat负载均衡3种实现方式

    1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...

  9. apache + tomcat 负载均衡分布式集群配置

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

随机推荐

  1. 【01】在 issue 中创建 list

    [01]在 issue 中创建 list 你想在你的 issue中看到可多选的 list 么? 当你查看问题时,你想不想让它变成 2 of 5 这样的形式. 如果想,你可以在 issue 中使用以下句 ...

  2. BRVAH(让RecyclerView变得更高效) (3)

    本文来自网易云社区 作者:吴思博 3 实现列表加载动画效果    3.1默认动画 我们只需将自建的 adapter 继承它对应满足需求的 Adapter,然后在 Activity 中实例化,通过ope ...

  3. vmware的vmdk格式虚拟机转换为qcow2格式

      今天应其他部门的需求,把一个笔记本里的vmware的window2008的虚拟机转换为qcow2格式,在公司服务器上运行. 第一次做,用了许多时间 首先: 虚拟机的镜像分为多个vmdk文件,所以我 ...

  4. 练习题,新建数据库anyun

    一.新建数据库,数据库名为anyun mysql> create database anyun; Query OK, 1 row affected (0.00 sec) 二.查看数据库 mysq ...

  5. 【LeetCode】Maximum Subarray(最大子序和)

    这道题是LeetCode里的第53道题. 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1 ...

  6. php5.3.3版本前后变化中php-v和sbin/php-fpm -v

    重装php-fpm试试,遂去http://php-fpm.org/download/想下载个新版本的php-fpm, 结果发现版本大于5.3.3的PHP内部已经集成了php-fpm,不用再另行安装了. ...

  7. Virtual Box 安装过程(卸载Vmware后)

    VirtualBox安装前的操作:(或许某些操作不一定有用,但是我是这么做下来的,最后也安装成功了) 步骤一:停止之前安装的vmware的所有服务(如果之前没有安装过虚拟机软件,无需做此操作)VMwa ...

  8. 启动第一个 KVM 虚机

    本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 1 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1, ...

  9. POJ 3461 kmp 应用

    题意:求匹配串在文本中出现次数,KMP应用,理解了就OK了,每次匹配成功就累加次数,开始的时候超时, 由于在处理每次成功的时候让i=i-len2+1,相当于回溯了,后来一想,本次成功,相当于" ...

  10. Idea其他设置

    一.生成javadoc Tools->Gerenate JavaDoc 1. 选择是整个项目还是模块还是单个文件 2. 文档输出路径 3. Locale 选择地区,这个决定了文档的语言,中文就是 ...