你的位置:首页 > 操作系统

[操作系统]利用httpd对tomcat进行负载均衡配置


实验系统:CentOS 6.6_x86_64

实验前提:提前准备好编译环境,防火墙和selinux都关闭

实验说明:本实验共有2台主机,IP分配如拓扑

实验软件:jdk-8u60-linux-x64  apache-tomcat-8.0.24  tomcat-connectors-1.2.41  httpd-2.2.15  httpd-devel-2.2.15

实验拓扑:

    

一、两台机器安装JAVA环境

  1.安装JAVA:

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

  2.配置环境变量:

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

二、两台机器安装tomcat

  1.安装tomcat:

wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.24/bin/apache-tomcat-8.0.24.tar.gztar 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/tomcatPATH=$CATALINA_BASE/bin:$PATHexport 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/jdkCATALINA_HOME=/usr/local/tomcatexport JAVA_HOME CATALINA_HOMEcase $1 instart) 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/tomcatchkconfig --add tomcat

  5.编辑tomcat配置文件,只添加jvmRoute参数:

    在19.66上:

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

    在19.74上:

vim /usr/local/tomcat/conf/server.-----------------------------------------------><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

三、利用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.gztar xf tomcat-connectors-1.2.41-src.tar.gzcd tomcat-connectors-1.2.41-src/native/./configure --with-apxs=/usr/sbin/apxsmake && make install

  3.提供额外的httpd模块配置文件:

vim /etc/httpd/conf.d/httpd-jk.conf------------------------------------------------------># Load the mod_jkLoadModule jk_module modules/mod_jk.so        //加载mod_jk.so模块JkWorkersFile /etc/httpd/conf.d/workers.properties   //此模块自己要用到的配置文件JkLogFile logs/mod_jk.logJkLogLevel debugJkMount /* lb1                     //访问根下的所有内容都发到集群lb1中来JkMount /status/ stat1

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

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

   5.启动测试:

service httpd start

    用浏览器打开http://192.168.19.66/test,我们不断刷新,可以看到实验效果。

       

四、利用mod_proxy模块对tomcat进行负载均衡

  1.仍然在19.66上编辑即可,使用http协议:

cd /etc/httpd/conf.d/mv httpd-jk.conf httpd-jk.conf.bakvim 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.bakvim 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.




出发去韩国旅游韩国旅游报价到韩国旅游团购去韩国旅游攻略韩国六日游行程安排参考沙湾美食节开幕时间?番禺沙湾美食节什么时候结束? 五一番禺美食节活动详情?广州番禺美食节活动有哪些? 广州番禺美食节2015攻略?番禺美食节门票多少钱? 2015番禺美食节几号开始?广州番禺美食节举办时间? 2015五一去香港买什么东西好呢? 去香港、澳门旅游要注意些什么? 去香港,购买iPhone5还有质量保证? 去香港龙城大药房买化妆品好还是SASA好? 泰国在哪里买化妆品最便宜?最可靠的? 2015迪拜购物节时间是什么时候?迪拜购物节折扣有哪些? 泰国办理过境签证有什么要求?泰国怎么办理过境签证? 马尔代夫6月份天气怎么样? 珠海一棵树农庄野战怎么收费?一棵树农庄能玩真人cs吗? 2015春节珠海去哪里好玩?珠海春节带家人孩子去哪玩? 珠海一棵树农庄有哪些儿童玩的?一棵树农庄适合多大儿童? 放鸡岛船票多少钱?茂名放鸡岛航班时间表? 04023J6R8BBSTR\500 Datasheet 04023J6R8BBSTR\500 Datasheet 1808CC223KATME Datasheet 1808CC223KATME Datasheet SR305E105MAA Datasheet SR305E105MAA Datasheet 长白山好玩吗 长白山好玩吗 长白山好玩吗 新西兰最佳旅游时间 新西兰最佳旅游时间 新西兰最佳旅游时间 大梅沙旅游攻略 大梅沙旅游攻略 大梅沙旅游攻略