Apache+Tomcat负载均衡实验配置

本次配置使用以下软件:

JDK:jdk1.8.0_151

Tomcat:apache-tomcat-8.5.29

Apache server:Apache_2.2.2-win32-x86-no_ssl.msi

Tomcat connector:Tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x.zip

一、下载及安装

1、JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK安装:一路回车,安装完毕。配置环境变量CLASSPATH和JAVA_HOME。

Apache+Tomcat负载均衡实验配置_第1张图片

将下载页面拉到底下,找到java SE仓库,点击download,找到自己想要的版本下载。

Apache+Tomcat负载均衡实验配置_第2张图片

2、Tomcat下载:http://apache.org/。进入官网,Project-->Tomcat-->Tomcat 8。下载.zip压缩包格式或者可以下载.exe安装格式。若需要别的版本,点击Archives进入Tomcat仓库进行下载。本次下载zip格式,直接解压到F盘。

Apache+Tomcat负载均衡实验配置_第3张图片

3、Apache server下载:http://archive.apache.org/dist/httpd/binaries/win32/找到对应的版本下载即可,本次下载的是Apache2.2

Apache+Tomcat负载均衡实验配置_第4张图片

 

Apache安装:安装Apache时注意,填写域名时根据情况来,如果是本地测试可以用localhost代替域名

地址栏输入http://127.0.0.1出现“IT WORKS”界面,说明你安装成功了

Apache+Tomcat负载均衡实验配置_第5张图片

Apache+Tomcat负载均衡实验配置_第6张图片

4、Tomcat connector:http://apache.org/,进入官网,Project-->Tomcat页面如下所示。

Apache+Tomcat负载均衡实验配置_第7张图片

按照上图的顺序Tomcat Connectors-->archive download site-->jk/-->binaries/-->windows/

Apache+Tomcat负载均衡实验配置_第8张图片

下载完成解压到F:\JK

 

Apache+Tomcat负载均衡实验配置_第9张图片
二、配置Apache

1、修改httpd.conf

我的Apache安装在F:\Apache2.2,找到conf目录下的httpd.conf,在文件的最后一行添加

include "conf/mod_jk.conf"

2、在F:\Apache2.2\conf目录下新建mod_jk.conf文件,内容如下:(建议去掉注释

#加载mod_jk.so文件

LoadModule jk_module modules/mod_jk.so

#加载workers.properties文件
JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /* controller

3、将下载的JK插件mod_jk.so复制到Apache的安装目录的modules目录下。若插件名字不是mod_jk.so的,将名字修改为mod_jk.so(改不改都行,跟配置文件上的保持一致就ok了)。

4、在F:\Apache2.2\conf目录下新建workers.properties文件,内容如下:

worker.list = controller
#========tomcat1======== 

worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1

#========tomcat2======== 

worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1


#=======Tomcat3====

worker.tomcat3.port=13009
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1

#========controller,负载均衡控制器========

worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1

#worker.controller.sticky_session=1 _force=0

这里可以配置任意多个Tomcat,此处配置了3个Tomat服务器,都是本地,所以为了它们都能够顺利启动起来,本地的服务器端口都是不同的,如果Tomcat不再同一机器上,没必要改端口的。tomcat的开启、关闭端口都要进行相关的改正要不然tomcat会启动不了。远程的话都不用改了。

三、配置Tomcat

配置3个Tomcat服务器,将Tomcat解压后复制3份,我将每个文件夹分别命名为tomcat1,tomcat2和tomcat3,修改每个Tomcat的conf目录下的server.xml文件配置。

1、Tomcat1的关闭端口(如果是在同一台电脑上配置,保持三个Tomcat互不相同就ok了

2、Tomcat1的启动端口(如果是在同一台电脑上配置,保持三个Tomcat互不相同就ok了

3、与apache链接的端口(如果是在同一台电脑上配置,保持三个Tomcat互不相同就ok了

Apache+Tomcat负载均衡实验配置_第10张图片

4、在与apache链接的端口下面是集群的相关配置

未修改的server.xml文件

Apache+Tomcat负载均衡实验配置_第11张图片
修改之后的server.xml文件

Apache+Tomcat负载均衡实验配置_第12张图片

说明:这块要加多这个属性 channelSendOptions="6"  要不然会话ID不一致,根据自己的情况而论,这个不一定。

四、建立测试项目

1、在MyEclipse建立web项目test,需要在项目中的web.xml中添加

Apache+Tomcat负载均衡实验配置_第13张图片

2、建立jsp文件,test2.jsp,内容如下:

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

Cluster App Test

Server Info:

<%

out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
");%>

<%

  out.println("
ID " + session.getId()+"
");

  // 如果有新的 Session 属性设置

  String dataName = request.getParameter("dataName");

  if (dataName != null && dataName.length() > 0) {

     String dataValue = request.getParameter("dataValue");

     session.setAttribute(dataName, dataValue);

  }

  out.println("Session 列表
");

  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+"
");

         System.out.println( name + " = " + value);

   }

%>

 

    名称:

     

    值:

     

   

   


五、session测试

将项目部署到3个服务器,然后分别启动Apache和3个Tocmat服务器,这些Tomcat启动顺序随意,然后打开http://localhost/test/test2.jsp,结果如下图:

Apache+Tomcat负载均衡实验配置_第14张图片

F5刷新页面,分别出现:

Apache+Tomcat负载均衡实验配置_第15张图片

Apache+Tomcat负载均衡实验配置_第16张图片

多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。那么session中的存储的东西呢,在输入框中分别输入1、1,2、2,3、3后,显示结果如下图:

Apache+Tomcat负载均衡实验配置_第17张图片

Apache+Tomcat负载均衡实验配置_第18张图片

Apache+Tomcat负载均衡实验配置_第19张图片

以上的测试说明,集群中的session已经共享,每个集群对于同一访问均有相同的session,而且session中存储的变量也复制了。

转载于:https://my.oschina.net/u/3866268/blog/1817293

你可能感兴趣的:(Apache+Tomcat负载均衡实验配置)