windows下Apache+tomcat+jk方式实现负载均衡

2 篇文章 0 订阅

前言:


环境:

 windows7 64、JDK1.8、Apache2.4、Tomcat8.0  JK

下载地址:

     JDK1.8 Apache2.4 Tomcat8.0JK jdk的事儿我就不说了,真不是这儿的重点,下载完后的截图如下:



安装步骤

1. 安装配置JDK

2. 安装配置Apache

3. 安装配置Tomcat

4. 启动服务并测试


开始Demo测试步骤:

1、解压 Apache2.4

    将下载后的安装包解压到提前准备好的安装路径,如我的demo安装测试路径为: “D:\apache_tomcat_jk\anzhuangdi”解压后的结构如图:


   2、安装Apache2.4

 如果已经安装过 Apache的,可以先卸载再安装,运行cmd命令,切换到Apache24的安装路径下,执行如下命令:

  卸载: 

httpd -k uninstall -n Apache2.4
       安装:
httpd -k install -n Apache2.4
     截图如下:

惊现bug?:可以发现 安装过程提示  在httpd.conf 的第 39行出现异常,因为Apache的地址我们还没有配置,但这不要紧,完成步骤3就好啦!

安装完成后可以看到窗口真确打印  service issuccessfully installed ,也可以去 右键我的电脑,管理,服务,可以看到多了一个名为Apache2.4的服务。

3,配置httpd.conf

打开Apache24\conf下的httpd.conf主配置文件进行配置

Define SRVROOT "/Apache24"
     ServerRoot "${SRVROOT}"
 修改为:

Define SRVROOT "D:\apache_tomcat_jk\anzhuangdi\Apache24"
     ServerRoot "${SRVROOT}"

httpd.conf最后一行加入

Include conf/mod_jk.conf

4, 配置mod_jk.conf

Apache24\conf目录下建立mod_jk.conf文件,并打开,将其配置为以下代码。
#加载mod_jk Module     
LoadModule jk_module modules/mod_jk.so         
#指定 workers.properties文件路径     
JkWorkersFile conf/workers.properties       
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器      
JkMount /*.do controller
JkMount /*WEB-INF controller
JkMount /*j_spring_security_check controller
JkMount /*.action controller
JkMount /servlet/* controller
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /*.action controller
JkMount /* controller
5、 配置workers.properties

Apache24\conf目录下建立workers.properties文件,将其配置为以下代码。

worker.list =controller,tomcat1,tomcat2   #server 列表
#========tomcat1========    
worker.tomcat1.port=18009       #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址 
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多 
#========tomcat2========  
worker.tomcat2.port=28009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========controller,负载均衡控制器========   
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat    
worker.controller.sticky_session=false               #回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理
worker.controller.sticky_session_force=false         #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息
  如需增加Tomcat,在workers.properties中增加即可

6、添加JK

将tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip解压,并找到其中mod_jf.so文件,将其放至Apache24\modules文件夹中

7、 解压 tomcat

 7.1)、 将apache-tomcat-8.0.49.zip 解压 并分别命名为 apache-tomcat-8.0.49-1 和 apache-tomcat-8.0.49-2

 7.2)、分别配置conf/server.xml 

     1.修改shutdown端口,tomcat1改为18005,tomcat2改为28015

     tomcat1:

<Server port="18005" shutdown="SHUTDOWN">
           tomcat2:
<Server port="28005" shutdown="SHUTDOWN">
           2.分别修改默认 8080 请求端口为 18080,和 28080

    tomcat1:

<Connector port="18080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
         tomcat2:

<Connector port="28080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
  3.分别修改AJP端口号,同workers.properties中配置的port,tomcat1改为18009,tomcat2改为28009

tomcat1:

<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
tomcat2:
<Connector port="28009" protocol="AJP/1.3" redirectPort="8443" />
  4.分别修改Engine,tomcat1在末尾加 jvmRoute=”tomcat1”,tomcat2在末尾加 jvmRoute=”tomcat2”,与workers.properties配置的server名称对应

tomcat1:

<Engine name="Catalina" defaultHost="localhost"  jvmRoute="tomcat1">
  tomcat2:
<Engine name="Catalina" defaultHost="localhost"  jvmRoute="tomcat2">                                           
   5.分别将以下注释掉的代码打开
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>                                             


8,运行项目配置

在两个 tomcat的 webapp下分别新建 test文件夹 ,并且新建 test.jsp文件内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<%@page import="java.util.*"%>  
  
  
<html>  
  
  <head>  
  
    <title>cluster test - share session</title>  
  
 <meta http-equiv="pragma" content="no-cache">  
  
 <meta http-equiv="cache-control" content="no-cache">  
  
  </head>  
  
  <body>  
  
 <%    
  
 String sessionid = session.getId();  
  out.println("tomcat1------>当前sessionid = " + sessionid);
System.out.println("当前sessionid = " + sessionid);  
  
// 如果有新的 Session 属性设置  
  
 String dataName = request.getParameter("dataName");  
  
 if (dataName != null && dataName.length() > 0) {  
  
  String dataValue = request.getParameter("dataValue");  
  
  session.setAttribute(dataName, dataValue);  
  
 }  
  
 out.println("<b>tomcat1------>Session 列表</b><br>");  
  
 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+"<br>");  
  
  System.out.println( name + " = " + value);  
  
  }  
  
 %>  
  
 <form action="test.jsp" id="form_add" method="post">  
  
  Key:<input id="dataName" name="dataName" type="text"/>  
  
  Value:<input id="dataValue" name="dataValue" type="text"/>  
  
     <input id="subBtn" name="subBtn" type="submit" value="提交" />  
  
 </form>  
  
  </body>  
  
</html>  
修改 标红部分,用于区分不同的tomcat下文件
在 test文件夹下新建 WEB-INF 文件夹加 分别添加 web.xml 文件并添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true"> 
 <distributable />
</web-app>

9 ,分别启动tomcat1 和tomcat2 在浏览器尝试访问 如图:

10,启动 Apache 如图:




11、在浏览器中 方法 http://localhost/test/test.jps 多次刷新,从页面打印信息可以看到 apache对请求进行了分发处理,分配到了不同的comcat上







12,至此一个简单的 apache+tomcat+jk的负载 demo就测试完成了。附上 apache2.4+tomcat8.0+jk的完整安装包下载


附件:apache2.4+tomcat8.0+jk


  




    




 

  























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FiveMillion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值