zoukankan      html  css  js  c++  java
  • 使用apache+tomcat+mod_jk.so实现集群

    首先我们需要下载apache服务器,这是win下64位下载地址

    下载地址:https://www.apachehaus.com/cgi-bin/download.plx?dli=VtWR5V1QNVzTEp0KldUMUBlVOpkVFVFdPZlStRWU

    然后我们下载 mod_jk.so

    下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

    然后我们准备两个tomcat,注意,如果你配置tomcat的环境变量,需要删除掉,不然会导致无论你启动哪个tomcat都会是启动环境变量下的那个。

    我们将两个tomcat分别明明为tomcata和tomcatb

    在tomcata中我们需要修改配置文件,打开conf/server.xml文件 ,修改端口如下:

    <!--添加jvmRoute="tomcat_a"实现集群-->
    <Engine defaultHost="localhost" name="Catalina"  jvmRoute="tomcat_a">
    <!--注释放开-->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    <Server port="10005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    
       <Connector connectionTimeout="20000" port="10080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <!-- 如果你这里是注释的,需要打开,并且按照我这样配置,不然可能会出错-->
       <Connector protocol="AJP/1.3"
                   address="127.0.0.1"
                   port="10009"
                   redirectPort="8443" secretRequired="" />

    同样的需要在tomcatb中做同样的配置,记得端口要区别

    在tomcata中我们需要修改配置文件,打开conf/server.xml文件 ,修改端口如下:
    <!--添加jvmRoute="tomcat_a"实现集群-->
    <Engine defaultHost="localhost" name="Catalina"  jvmRoute="tomcat_a">
    <!--注释放开-->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    <Server port="20005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    
       <Connector connectionTimeout="20000" port="20080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <!-- 如果你这里是注释的,需要打开,并且按照我这样配置,不然可能会出错-->
       <Connector protocol="AJP/1.3"
                   address="127.0.0.1"
                   port="20009"
                   redirectPort="8443" secretRequired="" />

    然后需要将apache服务注册到系统中使用管理员模式打开cmd,进入apache/bin目录

    输入以下命令

    httpd.exe -k install -n "apache24"

    执行成功后就可以在服务里面看到我们注册的服务了,如下

    接着我们配置mod_jk.so

    首先将我们刚才下载的mod_jk.so复制到Apache24modules目录下,然后我们在Apache24conf目录下新建一个workers.properties,内容如下:

    worker.list=controller,tomcata,tomcatb
    
    #tomcata
    worker.tomcata.type=ajp13
    worker.tomcata.host=127.0.0.1
    worker.tomcata.port=10009
    
    
    #负载均衡的权重
    worker.tomcata.lbfactor=1
    
    #tomcata
    worker.tomcatb.type=ajp13
    worker.tomcatb.host=127.0.0.1
    worker.tomcatb.port=20009
    
    
    #负载均衡的权重
    worker.tomcatb.lbfactor=2
    
    #controller
    worker.controller.type=lb
    #负载均衡所用tomcat
    worker.controller.balanced_workers=tomcata,tomcatb
    worker.controller.sticky_session=false

    然后再听一个目录下新建mod_jk.conf文件,里面的配置如下:

    #加载mod_jk.so
    LoadModule jk_module modules/mod_jk.so
    #加载workers.properties
    JkWorkersFile conf/workers.properties
    JkMount /* controller

    然后我们再Apache中引入上面配置的文件,即在Apache24confhttpd.conf最后追加

    include conf/mod_jk.conf

    关于集群的配置就完成了,然后我们新建一个Web项目

    里面的web.xml配置如下

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
      version="3.1"
      metadata-complete="true"
      >
    
         <welcome-file-list>
            <welcome-file>UpShow.jsp</welcome-file>
            <welcome-file>index.xhtml</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    
    
        <context-param>
                <param-name>GlobalParam</param-name>
                <param-value>GlobalValue</param-value>
        </context-param>
        
        <!--session共享策略-->
        <distributable/>
    </web-app>

    新建登录页面index.jsp如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>tomcata</title>
    </head>
        <body>
            <服务器地址
            <%
                out.print(request.getLocalAddr()+"==="+request.getLocalPort());
            %>
            session
            <%
                out.print(session.getId());
            %>
        </body>
    </html>

    最后将这两个项目在tomcata和tomcatb中发布,然后我们依次启动apache、tomcata和tomcatb

    访问index.jsp,效果如下

    刷新一下

    我们从tomcata到了tomcatb,表明我们的请求已经被分流了

    以上就是使用apache、tomcat和mod_jk.so实现集群的全部操作

  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/aierben/p/14537636.html
Copyright © 2011-2022 走看看