利用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.gz
tar 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/jdk
PATH=$JAVA_HOME/bin:$PATH
export 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.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

三、利用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,我们不断刷新,可以看到实验效果。

       

四、利用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.

时间: 2024-10-11 17:02:04

利用httpd对tomcat进行负载均衡配置的相关文章

Nginx+Tomcat+Memcached负载均衡配置完整流程(多方总结,亲测可用)

Nginx+Tomcat+Memcached负载均衡配置完整流程: 前言: Nginx实现Tomcat的负载均衡和利用memcached实现session共享. 首先配置tomcat,JDK 将jdk,tomcat 放入站点/opt目录中 安装JDK cd /opt chmod 755 jdk-6u45-linux-x64-rpm.bin ./jdk-6u45-linux-x64-rpm.bin java -version      //检验版本 安装Tomcat tar -zxf apache

centos 7部署Tomcat及其负载均衡配置详解

Tomcat服务器是一个免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是很多的场合中被普遍使用,是开发和测试JSP程序的首选.一般来说,Tomcat虽然和apache或者Nginx这些web服务器一样,具有处理HTML页面的功能,然而由于其处理静态页面的能力远不如apache或者Nginx,所以Tomcat一般是作为一个servlet和JSP容器,单独运行在后端,Tomcat应用场景如下: 用户访问的永远是apache/Nginx服务器,然后由apache/Nginx

部署 Tomcat 及其负载均衡配置

Tomcat服务器作为免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是很多的场合中被普遍使用,是开发和测试JSP程序的首选.一般来说,Tomcat虽然和apache或者Nginx这些web服务器一样,具有处理HTML页面的功能,然而由于其处理静态页面的能力远不如apache或者Nginx,所以Tomcat一般是作为一个servlet和JSP容器,单独运行在后端,Tomcat应用场景如下:用户访问的永远是apache/Nginx服务器,然后由apache/Nginx服务

[tomcat] tomcat+nginx 负载均衡配置

首先下载,安装tomcat. 修改tomcat端口,修改server.xml: 1.修改tomcat端口(默认8080) <Connector port="8383" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 2.shutdown 端口(默认8005) <Server port="8006" s

Tomcat(五):nginx/httpd + tomcat及负载均衡tomcat

*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h

Linux 下配置 nginx + 两个 tomcat 的负载均衡

前提:已经安装了 nginx 和两个 tomcat 1.修改 nginx.conf 配置文件    1)在 http{} 节点之间添加 upstream 配置 2)修改 nginx 的监听端口,默认是 80 ,我改成了 8090 3)用 proxy_pass 配置反向代理地址 配置后如下: 2.启动 nginx 启动命令: /usr/local/nginx/sbin/nginx 因为之前 nginx 已经被启动过,所以再次启动时会报错 使用命令查看各端口号被占用的情况: netstat -ntp

linux下:nginx+tomcat实现负载均衡

Nginx+tomcat+jdk+负载均衡配置 Nginx与tomcat都具有发布网页的功能,但是nginx只能发布HTML的静态网页,tomcat可以发布jsp的网页,并且nginx可以发布tomcat. 下载:jdk.xxxxxx.rpm   apache-tomcat-xxxxxxxxx.tar.gz   openssl.xxxxxx.tar.gz   zlib.xxxx.tar.gz   pcre.xxxx.tar.gz    Nginx.xxxxx.tar.gz 1.jdk安装配置 上

【第一季:Tomcat 8迷情】 第9集 apache+mod_proxy+tomcat 负载均衡配置

Web application:  请参看附件 环境说明: TomcatA:192.168.146.128 TomcatB:192.168.146.130 Apache Http Server: 192.168.146.128 在apahce httpd.conf配置: 1)加载模块 2)负载均衡配置 ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On <Proxy balance

Nginx+Tomcat负载均衡配置

Tomcat安装:#官方网站下载tomcat 6.0.30或者其他版本: cd /usr/src && tar xzf apache-tomcat-6.0.30.tar.gz #直接解压就可以使用,解压完成执行,同时拷贝两个tomcat,命名为tomcat1 tomcat2 mv apache-tomcat-6.0.30 /usr/local/tomcat1 cp /usr/local/tomcat1 /usr/local/tomcat2 -r #分别修改tomcat1和tomcat2 端