• Apache2.4 + Tomcat7 负载均衡配置


    一、配置tomcat 多启动

    1.下载免安装版 tomcat7

    http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.81/bin/apache-tomcat-7.0.81-windows-x64.zip

    解压tomcat7免安装版,复制三个解压tomcat文件夹

    tomcat7-1,tomcat7-2,tomcat7-3)

    2. 配置环境变量 

    变量名=变量值

    TOMCAT_HOME1 = tomcat解压路径(F:server omcat7-1)

    CATALINA_HOME1=%TOMCAT_HOME1%

    CATALINA_BASE1=%TOMCAT_HOME1%

    3.打开tomcat7-1in文件夹

    打开 startup.bat 在最前面添加

    SET JAVA_HOME =jdk安装路径(D:ProgramFilesJavajdk1.8.0_144)

    SET CATALINA_HOME=解压路径 (F:server omcat7-1)

     4.修改新的tomcat7-1中的startup.bat

    把其中的CATALINA_HOME改为CATALINA_HOME1

    (备注:如果配置不成功的情况下,要打开shutdown.bat在最前面添加SET JAVA_HOME =jdk安装路径(D:ProgramFilesJavajdk1.8.0_144)

    SET CATALINA_HOME=解压路径 (F:server omcat7-1)

     5.修改新的tomcat7-1中的catalina.bat

    把其中的    CATALINA_HOME改为CATALINA_HOME1,

    CATALINA_BASE改为CATALINA_BASE1。

    6.修改tomcat7-1 conf/server.xml文件:

    6.1 <Server port="8005" shutdown="SHUTDOWN">把端口改为没有是使用的端口。

    6.2 <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"redirectPort="8443" /> 把端口改为没有是使用的端口。

     6.3<Connector port="8009" enableLookups="false"

     redirectPort="8443" protocol="AJP/1.3" /> 把端口改为没有是使用的端口。

     7.点击startup.bat启动 成功!

    8. tomcat7-2,tomcat7-3 重复2~6 步顺序进行即可!

     (cmd命令行执行1netstat ano 查看端口情况2tasklist 查看运行程序情况3、杀掉占用你多需要端口的程序)

    二、配置apache2.4

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

    2.然后打开以管理员身份打开 cmd 进入到apache解压目录的bin文件夹中,bin文件夹中的httpd.conf中的目录要更改为你解压的目录

    3.接着运行 httpd.exe -k install    (卸载Apache服务:httpd -k uninstall -n apache2.4

    4. 打开conf/httpd.conf文件 在38Define SRVROOT "apache解压的目录" F:serverApache24

    5.运行bin文件夹中的ApacheMonitor.exe

    端口号有冲突 只需在conf目录下的httpd.conf文件和httpd-vhosts.conf中更改端口号即可

    注:在配置文件中的 6680 改为88  22480 改为88

    出现缺少140.ddl 组件时 下载安装组件:

    https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

     

    三、配置apache2.4 + tomcat7

    ①打开conf/httpd.conf文件,加载以下模块。

    #---------------------Session start------------------------

    LoadModule proxy_module modules/mod_proxy.so

    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

    #----------------------end---------------------

    ③去掉Include conf/extra/httpd-vhosts.conf的注释标记#。(有的需要,有的不需要)

    ④在文件末尾加反向代理

    ProxyRequests off

    ProxyPassReverse / balancer://tomcatcluster/

    <proxy balancer://cluster>

         BalancerMember ajp://127.0.0.1:81009 loadfactor=1 route=jvm1

         BalancerMember ajp://127.0.0.1:92009 loadfactor=1 route=jvm2

         BalancerMember ajp://127.0.0.1:93009 loadfactor=1 route=jvm3

    </proxy>

    #参数"loadfactor"表示后台服务器负载到由Apache发送请求的权值,

    ⑤修改conf/extra/httpd-vhosts.conf文件。

    注释掉所有的dummy-host,添加以下内容

    <VirtualHost *:80>

             ServerAdmin  localhost  

             ServerName localhost  

             ServerAlias localhost

             ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

             ProxyPassReverse / balancer://cluster/

             ErrorLog "logs/lbtest-error.log"

             CustomLog "logs/lbtest-access.log" common

    </VirtualHost>

    #80 apache 如果apache默认端口修改则这个端口号也需要修改

    2.配置Tomcat

    修改tomcat7-1tomcat7-2tomcat7-3 conf/server.xml文件

    <Engine name="Catalina" defaultHost="localhost">在末尾加 jvmRoute="jvm1"

    同时修改Tomcat2 Tomcat3 的这个标签为jvmRoute="jvm2"jvmRoute="jvm3"

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>改为

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">

            <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*.gif;.*.js;.*.jpg;.*.png;.*.htm;.*.html;.*.css;.*.txt;"/>

    </Cluster>

    配置完成之后,启动两个Tomcat测试一下Tomcat是否可以正常启动

    如果可以正常启动,则进行下面步骤

    webApps下面添加Test目录,添加Test.jsp

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

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

    <html><head><title>Cluster App Test</title></head>

    <body>

    Server Info:

    <%

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

    <%

      out.println("<br> ID " + session.getId()+"<br>");

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

      

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

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

         session.setAttribute(dataName, dataValue);

      }  

      

      out.print("<b>Session 列表</b>");  

      

      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" method="POST">

        名称:<input type=text size=20 name="dataName">

         <br>

        :<input type=text size=20 name="dataValue">

         <br>

        <input type=submit>

       </form>

    </body>

    </html>

    创建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>

    最后启动Apache2.4,在页面中输入localhost:88 est est.jsp进行测试。

    该地址的端口访问的是Apache端口

    session 共享两种方式 通过修改conf/server.xml文件 中的<Cluster></Cluster>节点

    1.session sticky:会话不复制

     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> #注释掉

     2.session replication:会话复制

     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> #去掉该行注释即可实现session复制功能

  • 相关阅读:
    [数据库]Mysql蠕虫复制增加数据
    [YII2.0] 高级模板简单安装教程
    PHP 将字符串转换为字符集格式UTF8/GB2312/GBK 函数iconv()
    [腾讯云]简单在腾讯云 CenTOS7.0 安装Nginx,Mysql(MariaDB),Memcache,解析PHP!
    cojs 简单的01串 题解报告
    5.13 考试修改和总结
    cojs 简单的最近公共祖先 解题报告
    5.11 考试 修改+总结
    My_Plan part1 小结
    cojs 简单的数位DP 题解报告
  • 原文地址:https://www.cnblogs.com/xiuxun/p/7563484.html
Copyright © 2020-2023  润新知