阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

利用httpd对Tomcat进行负载均衡配置

156次阅读
没有评论

共计 6342 个字符,预计需要花费 16 分钟才能阅读完成。

实验系统: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

实验拓扑:

利用 httpd 对 Tomcat 进行负载均衡配置

一、两台机器安装 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

利用 httpd 对 Tomcat 进行负载均衡配置

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

利用 httpd 对 Tomcat 进行负载均衡配置    利用 httpd 对 Tomcat 进行负载均衡配置

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

以上两种办法都可以实现负载均衡,刷新页面仍然可以看到效果,这里就不在给出图片了。至此,实验全部结束,谢谢!

更多 Tomcat 相关教程见以下内容

CentOS 6.6 下安装配置 Tomcat 环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

CentOS 6.5 下安装 Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm 

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/122321.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6342字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中