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. Python中你不知道的特性

    内置函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 本函数是实现对象以字符串表示的方式格式化输出到流文件对象fil ...

  2. 关于EGE图形库在CodeBlocks下的配置

    非常感谢[地球]呵呵@的细心帮助,我差点都放弃了! 我这里使用的是Code::Blocks svn 10595 与 TDM-GCC 5.10 首先下载为 GCC 5.0 以上编译好的 EGE 文件,稍 ...

  3. [Kubernetes]容器健康检查和恢复机制

    在Kubernetes中,可以为Pod里的容器定义一个健康检查探针(Probe),这样Kubernetes会根据这个Probe的返回值决定这个容器的状态,而不是直接以容器是否允许(来自Docker返回 ...

  4. 虚拟机安装centos6.5

    最近想搞一下代码覆盖率的jacoco,需要在linux环境下部署一套jenkins.故需要装一个centos的虚拟机. 一.安装虚拟机. 下载后安装一个虚拟机,我选择的是VMware虚拟机 二.安装c ...

  5. 【luogu】P1772物流运输(最短路+DP)

    题目链接 对于本题我们设ext[i][j]计算第i个码头在前j天总共有几天不能用(其实就一前缀和),设dis[i][j]是从第i天到第j天不变运输路线的最短路径,设f[i]是前i天运输货物的最小花费. ...

  6. FZU 2020 :组合 【lucas】

    Problem Description 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数.例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大! ...

  7. VMware虚拟机CentOS7 - VMnet8网络配置及常见问题解决

    本文环境 物理机OS: Windows10 专业版 虚拟机平台: VMware Workstation 14 虚拟机OS: CentOS 7 配置步骤 一. 查看物理主机的网络配置信息 主要是找到可以 ...

  8. windows创建任务计划(周期执行bat脚本)

    https://jingyan.baidu.com/article/ca00d56c767cfae99febcf73.html windows找到任务计划程序: 这台电脑->管理

  9. StoryBoard中,TableView位置总是在顶部出现空白的解决

      重设TableView的 contentInset 属性可解决. 
_tableView.contentInset = UIEdgeInsetsMake( -30, 0, 0, 0);


  10. 小程序-地图API

    摘要 地图组件-map 注意事项&&Bug: 1.map 组件是由客服端创建的原生组件,它的层级是最高的. 2.请勿在scroll-view中使用map组件 3.css动画对map组件 ...