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. 用btrace定位问题

    btrace 截取方法出入参 用btrace的手法,网上有很多.简单记录下我自己的使用经历. btrace脚本: import static com.sun.btrace.BTraceUtils.ex ...

  2. Leetcode 396.旋转函数

    旋转函数 给定一个长度为 n 的整数数组 A . 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的"旋转函数" F 为: F(k) = 0 * Bk[0] ...

  3. Android隐藏软键盘收回软键盘

    代码改变世界 Android隐藏软键盘收回软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPU ...

  4. 【Luogu】P1586四方定理(DP)

    题目链接 此题使用DP.设f[i][j]表示数i用j个数表示,则对于所有的k<=sqrt(i),有 f[i][j]=∑f[i-k*k][j-1] 但是这样会有重复情况.所以先枚举k,再枚举i和j ...

  5. PAT天梯赛练习题——L3-003. 社交集群(并查集按秩合并)

    L3-003. 社交集群 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在社交网络平台注册时,用户通常会输入自己的兴趣爱好, ...

  6. BZOJ2726 [SDOI2012]任务安排 【斜率优化 + cdq分治】

    题目 机器上有N个需要处理的任务,它们构成了一个序列.这些任务被标号为1到N,因此序列的排列为1,2,3...N.这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i ...

  7. cf550D Regular Bridge

    Regular Bridge An undirected graph is called k-regular, if the degrees of all its vertices are equal ...

  8. 解决 IDEA 中src下xml等资源文件无法读取的问题

    该问题的实质是,idea对classpath的规定. 在eclipse中,把资源文件放在src文件夹下,是可以找到的: 但是在idea中,直接把资源文件放在src文件夹下,如果不进行设置,是不能被找到 ...

  9. hdu 4430 Yukari's Birthday 枚举+二分

    注意会超long long 开i次根号方法,te=(ll)pow(n,1.0/i); Yukari's Birthday Time Limit: 12000/6000 MS (Java/Others) ...

  10. PHP的Trait机制

    PHP的Trait机制 Trait介绍: 1.自PHP5.4起,PHP实现了一种代码复用的方法,称为trait.2.Trait是为类似PHP的单继承语言二准备的一种代码复用机制.3.Trait为了减少 ...