利用httpd對tomcat進行負載均衡配置

實驗系統:CentOS 6.6_x86_64html

實驗前提:提早準備好編譯環境,防火牆和selinux都關閉java

實驗說明:本實驗共有2臺主機,IP分配如拓撲linux

實驗軟件:jdk-8u60-linux-x64  apache-tomcat-8.0.24  tomcat-connectors-1.2.41  httpd-2.2.15  httpd-devel-2.2.15web

實驗拓撲:apache

    

1、兩臺機器安裝JAVA環境vim

  1.安裝JAVA:瀏覽器

wget http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz
tar xf jdk-8u60-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv jdk1.8.0_60 jdk

  2.配置環境變量:tomcat

vim /etc/profile.d/jdk.sh
--------------------------------------------------->
JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
<---------------------------------------------------
. /etc/profile.d/jdk.sh

2、兩臺機器安裝tomcatsession

  1.安裝tomcat:oracle

wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.24/bin/apache-tomcat-8.0.24.tar.gz
tar xf apache-tomcat-8.0.24.tar.gz -C /usr/local/
cd /usr/local/
ln -sv apache-tomcat-8.0.24 tomcat

  2.配置環境變量:

vim /etc/profile.d/tomcat.sh
--------------------------------------------------->
CATALINA_BASE=/usr/local/tomcat
PATH=$CATALINA_BASE/bin:$PATH
export PATH CATALINA_BASE
<---------------------------------------------------
. /etc/profile.d/tomcat.sh

  3.查看tomcat及JAVA狀態:

catalina.sh version

    

  4.提供啓動腳本:

vim /etc/init.d/tomcat
-------------------------------------------------------->
#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
# JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/local/jdk
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME

case $1 in
start)
 exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
 exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
 $CATALINA_HOME/bin/catalina.sh stop
 sleep 2
 exec $CATALINA_HOME/bin/catalina.sh start ;;
*)
 echo "Usage: `basename $0` {start|stop|restart}"
 exit 1
 ;;
esac
<--------------------------------------------------------
chmod +x /etc/init.d/tomcat
chkconfig --add tomcat

  5.編輯tomcat配置文件,只添加jvmRoute參數:

    在19.66上:

vim /usr/local/tomcat/conf/server.xml
----------------------------------------------->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatA">             //指明這是TomcatA主機

    在19.74上:

vim /usr/local/tomcat/conf/server.xml
----------------------------------------------->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatB">

  6.提供測試頁面:

     在19.66上:

mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
vim /usr/local/tomcat/webapps/test/index.jsp
------------------------------------------------------------------------>
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <%
            out.println("This is TomcatA");
        %>
    </body>
</html>
------------------------------------------------------------------------>
service tomcat start

    在19.74上:

mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
vim /usr/local/tomcat/webapps/test/index.jsp
------------------------------------------------------------------------>
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <%
            out.println("This is TomcatB");
        %>
    </body>
</html>
------------------------------------------------------------------------>
service tomcat start

3、利用mod_jk模塊對tomcat進行負載均衡

  利用httpd反向代理tomcat時有兩種方法,分別要用到mod_proxy和mod_jk這兩個模塊。mod_jk須要額外編譯安裝,而mod_proxy須要用到httpd的proxy_module、proxy_balancer_module、proxy_http_module、proxy_ajp_module模塊,確保安裝時這些模塊都被安裝了。從httpd2.2開始,這些模塊默認就是安裝的,因此這裏咱們直接用yum安裝便可。

  下面先演示利用mod_jk模塊對tomcat進行負載均衡。此模塊只須要在一臺機器上安裝,咱們這裏在19.66上安裝。

  1.安裝httpd:

yum -y install httpd httpd-devel          //安裝httpd-devel爲了提供apxs

  2.安裝mod_jk.so模塊:

wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
tar xf tomcat-connectors-1.2.41-src.tar.gz
cd tomcat-connectors-1.2.41-src/native/
./configure --with-apxs=/usr/sbin/apxs
make && make install

  3.提供額外的httpd模塊配置文件:

vim /etc/httpd/conf.d/httpd-jk.conf
------------------------------------------------------>
# Load the mod_jk
LoadModule  jk_module  modules/mod_jk.so                //加載mod_jk.so模塊
JkWorkersFile  /etc/httpd/conf.d/workers.properties     //此模塊本身要用到的配置文件
JkLogFile  logs/mod_jk.log
JkLogLevel  debug
JkMount  /* lb1                                        //訪問根下的全部內容都發到集羣lb1中來
JkMount /status/ stat1

  4.配置mod_jk模塊的配置文件workers.properties:

vim /etc/httpd/conf.d/workers.properties
-------------------------------------------------------->
worker.list = lb1,stat1
worker.TomcatA.type = ajp13                        //httpd鏈接tomcat所用的模式
worker.TomcatA.host = 192.168.19.66
worker.TomcatA.port = 8009
worker.TomcatA.lbfactor = 1                        //權重
worker.TomcatB.type = ajp13
worker.TomcatB.host = 192.168.19.74
worker.TomcatB.port = 8009
worker.TomcatB.lbfactor = 1
worker.lb1.type = lb                              //調度方式
worker.lb1.sticky_session = 0                     //是否使用session綁定
worker.lb1.balance_workers = TomcatA, TomcatB
worker.stat1.type = status

   5.啓動測試:

service httpd start

    用瀏覽器打開http://192.168.19.66/test,咱們不斷刷新,能夠看到實驗效果。

       

4、利用mod_proxy模塊對tomcat進行負載均衡

  1.仍然在19.66上編輯便可,使用http協議:

cd /etc/httpd/conf.d/
mv httpd-jk.conf httpd-jk.conf.bak
vim httpd-proxy.conf
-------------------------------------------------------------->
<Proxy balancer://lb1>
   BalancerMember http://192.168.19.66:8080 loadfactor=1 route=TomcatA
   BalancerMember http://192.168.19.74:8080 loadfactor=1 route=TomcatB
   ProxySet lbmethod=byrequests               //基於權重將統計請求個數進行調度
</Proxy>

ProxyPass / balancer://lb1/
ProxyPassReverse / balancer://lb1/
<--------------------------------------------------------------
service httpd restart

  2.使用ajp協議:

cd /etc/httpd/conf.d/
mv httpd-jk.conf httpd-jk.conf.bak
vim httpd-proxy.conf
-------------------------------------------------------------->
<Proxy balancer://lb1>
   BalancerMember ajp://192.168.19.66:8009 loadfactor=1 route=TomcatA
   BalancerMember ajp://192.168.19.74:8009 loadfactor=1 route=TomcatB
   ProxySet lbmethod=byrequests
</Proxy>

ProxyPass / balancer://lb1/
ProxyPassReverse / balancer://lb1/
<--------------------------------------------------------------
service httpd restart

  以上兩種辦法均可以實現負載均衡,刷新頁面仍然能夠看到效果,這裏就不在給出圖片了。至此,實驗所有結束,謝謝!若有問題,請聯繫我,QQ:82800452.

相關文章
相關標籤/搜索