Apache2.4 + Tomcat7 負載均衡配置

1、配置tomcat 多啓動css

1.下載免安裝版 tomcat7 html

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

解壓tomcat7免安裝版,複製三個解壓tomcat文件夾web

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

2. 配置環境變量 windows

變量名=變量值tomcat

TOMCAT_HOME1 = tomcat解壓路徑(F:\server\tomcat7-1)服務器

CATALINA_HOME1=%TOMCAT_HOME1%session

CATALINA_BASE1=%TOMCAT_HOME1%app

3.打開tomcat7-1\bin文件夾

打開 startup.bat 在最前面添加

SET JAVA_HOME =jdk安裝路徑(D:\ProgramFiles\Java\jdk1.8.0_144)

SET CATALINA_HOME=解壓路徑 (F:\server\tomcat7-1)

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

把其中的CATALINA_HOME改成CATALINA_HOME1

(備註:若是配置不成功的狀況下,要打開shutdown.bat在最前面添加SET JAVA_HOME =jdk安裝路徑(D:\ProgramFiles\Java\jdk1.8.0_144)

SET CATALINA_HOME=解壓路徑 (F:\server\tomcat7-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、殺掉佔用你多須要端口的程序)

 

2、配置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:\server\Apache24

 

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

 

3、配置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\test\test.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複製功能

相關文章
相關標籤/搜索