jk_proxy实现apache+tomcat负载均衡
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负载均衡的更多相关文章
- Linux平台上搭建apache+tomcat负载均衡集群
传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...
- Apache+Tomcat负载均衡问题集锦
之前在windows 环境下搭建了下apache+tomcat负载均衡(不会的能够參考之前的文档,文档对于linux和windows都适用),一帆风顺.没有出现不论什么问题.今天尝试着在linux下搭 ...
- Windows下apache+tomcat负载均衡
Windows下apache+tomcat负载均衡 网上已经有很多的资料,但是很多都比较零碎,需要整合一起才能搭建出理想的负载均衡,正好前段时间搭建了windows与linux下的负载均衡,在此记录, ...
- 1.Apache+Tomcat负载均衡+集群配置
1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...
- apache+tomcat 负载均衡
说明:本篇不面向无开发基础的人员,所以不会有软件下载,jdk安装等步骤.比较久远的东西了...... 1.系统环境 win7-64.jdk 2.软件列表: apache_2.2.24-x64-no-s ...
- linux下一个apache+tomcat负载均衡和集群
先说一下我的环境 一个ubuntu虚拟机, 一个apache2.2示例 两tomcat1.7示例 1.安装apacheserver sudo apt-get install apache2 假设要重新 ...
- Apache+Tomcat负载均衡集群搭建
1.所需软件 apache_2.2.4-win32-x86-no_ssl.apacheserver mod_jk-apache-2.2.4连接器,连接apache和tomcat apache-tomc ...
- apache+tomcat负载均衡3种实现方式
1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...
- apache + tomcat 负载均衡分布式集群配置
Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...
随机推荐
- awk支持多个记录分隔符的写法
awk的-F参数可以指定新的记录分隔符,有些时候可能需求指定多个分隔符,比如下面的内容 width:720 height:360 如果需要取出width和height后面的值的话,一般大家会这样做,即 ...
- hdu2024
这题目感觉不是很严谨,如果是关键字的话也是不能作为合法标识符的,但是这个不用检测,就算要检测也会很费劲,还得用字符串匹配,而且还得知道一共都有哪些关键字,太麻烦了,所以出题人原意就是检查大小写字母数字 ...
- BZOJ 2946 [Poi2000]公共串 ——后缀自动机
任意选择一个串作为模式串,构建出后缀自动机. 然后用其他的串在后缀自动机上跑匹配. 然后就到了理解后缀自动机性质的时候. 在某一个节点的最大值是可以沿着parent树上传的. 然后用dp[i][j]表 ...
- BZOJ 1087 [SCOI2005]互不侵犯King ——状压DP
[题目分析] 沉迷水题,吃枣药丸. [代码] #include <cstdio> #include <cstring> #include <iostream> #i ...
- mysql/oracle 连接参数中文变问号
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&useSSL=true
- polya burnside 专题
polya题目:uva 11077 Find the Permutationsuva 10294 Arif in DhakaLA 3641 Leonardo's Notebookuva 11077 F ...
- Day 4 Linux基础
Linux基础(指令篇) 一.Linux命令 1.Linux命令行的语法格式: 命令+选项+参数 命令:告诉Linux(UNIX)操作系统做(执行)什么. 选项:说明命令运行的方式(可以改变命令的功能 ...
- android 完美退出应用程序。
Android 程序在点击回退键时,如果只有一个activity,调用finish()方法就能退出界面,如果有多个界面,在调用该方法时,只会销毁当前的activity,显示栈顶的其它activity, ...
- golang 进程、线程、协程 简介
https://www.cnblogs.com/shenguanpu/archive/2013/05/05/3060616.html https://studygolang.com/articles/ ...
- js Math [ 随机数、绝对值、四舍五入、进一取整、舍去取整、最大值、最小值、圆周率 ]
<script> /* 数学对象:Math */ with (document) { write('<br>-3.5的绝对值:'+Math.abs(-3.5)); write( ...