使用httpd反向代理模块实现tomcat负载均衡集群(下)

上一篇讲解了http使用mod_http和mod_ajp代理模块实现tomcat负载均衡,下面我们来讲解使用http的mod_jk实现taomcat的负载均衡集群:

注意:http的mod_jk是第三方扩展模块,在新http版本中以不支持,在httpd 1.3和2.0效果较好

6、使用mod_jk实现tomcat负载均衡集群

6.1安装mod_jk

[root@node3 ~]# yum -y groupinstall "Development Tools" "Server Platfrom Development" \\安装编译环境
[root@node3 conf.d]# yum -y install httpd-devel \\安装httpd的开发包
[root@node3 ~]# tar xf tomcat-connectors-1.2.40-src.tar.gz  -C /usr/src \\解压软件包
[root@node3 ~]# cd /usr/src
[root@node3 src]# cd  tomcat-connectors-1.2.40-src/native/ \\cd解压后软件包的native目录
[root@node3 native]# ./configure --with-apxs=`which apxs`  \\安装mod_jk时是指定httpd的apxs位置
[root@node3 native]# make;make install  安装

6.2 确保httpd含有mod_jk模块

[root@node3 native]# ls -l /usr/lib64/httpd/modules/mod_jk.so
-rwxr-xr-x. 1 root root 1161241 Jul 18 16:44 /usr/lib64/httpd/modules/mod_jk.so

6.3 修改httpd配置文件,(注释掉默认文档存放位置)

[root@node3 conf.d]# pwd
/etc/httpd/conf.d
[root@node3 conf.d]# vim mod_jk.conf
    LoadModule jk_module modules/mod_jk.so  \\装载mod_jk模块
    JkWorkersFile /etc/httpd/conf.d/workers.properties  \\指明运行时配置文件的位置
    JkLogFile  log/mod_jk.log \\指定log日志位置
    JkLogFile  debug  \\指定日志级别,根据需求自定义
    JkMount /*  Cluster  \\将所有httpd请求映射为Cluster集群中,名字自定义
    JkMount /jk_status statA  \\状态监控页面
[root@node3 conf.d]# vim workers.properties 
    worker.list=Cluster,statA  \\工作列表
    worker.TomcatA.type=ajp13  \\定义后端TomcatA主机类型,
    worker.TomcatA.port=8009   \\定义后端主机的监听端口
    worker.TomcatA.host=172.16.2.14  \\定义后端主机地址
    worker.TomcatA.lbfactor=5
    worker.TomcatB.type=ajp13
    worker.TomcatB.port=8009
    worker.TomcatB.host=172.16.2.13
    worker.TomcatB.lbfactor=5
    worker.Cluster.type=lb   \\定义Cluster组的类型;
    worker.Cluster.sticky_session=0  \\会话保持关闭
    worker.Cluster.balance_workers=TomcatA,TomcatB \\将后端主机TomcatA,TomcatB映射到Cluster组中
    worker.statA.type=status \\定义statA的类型
type有三种类型:
  ajb13:用于负载调度
  status:tomcat自身所带的监控页面,类似于httpd的status
  lb:集群类型

6.4 修改tomcat主配置文件,在engine添加以下信息

 node1节点:  
   <Engine name="Catalina" defaultHost="www.mylinux.com" jvmRoute="TomcatA"> \\添加jvmRoute指令
 node2节点
    <Engine name="Catalina" defaultHost="www.mylinux.com" jvmRoute="TomcatB"> \\添加jvmRoute指令
 
 重新启动tomcat:
# catalina.sh stop
# catalina.sh start

6.4 重新启动httpd,访问测试

[root@node3 conf.d]# httpd -t
[root@node3 conf.d]# /etc/init.d/httpd restart

访问测试:

17.png18.png

6.5 开启httpd会话绑定,当客户端第一访问时若是有A主机提供页面信息,则后续的访问都有此主机提供;

 修改配置文件:

[root@node3 conf.d]# vim workers.properties 
worker.list=Cluster,statA
worker.TomcatA.type=ajp13
worker.TomcatA.port=8009
worker.TomcatA.host=172.16.2.14
worker.TomcatA.lbfactor=5
worker.TomcatB.type=ajp13
worker.TomcatB.port=8009
worker.TomcatB.host=172.16.2.13
worker.TomcatB.lbfactor=5
worker.Cluster.type=lb
worker.Cluster.sticky_session=1 \\开启会话保持
worker.Cluster.balance_workers=TomcatA,TomcatB
worker.statA.type=status

重启httpd,测试访问:

[root@node3 conf.d]# httpd -t
[root@node3 conf.d]# /etc/init.d/httpd restart

访问测试:无论怎么刷新,以后请求都会有第一次响应的主机提供页面信息

16.png

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/6370

赞 (0)
马行空马行空
上一篇 2015-07-21 21:53
下一篇 2015-07-21 21:55

相关推荐

  • shell脚本编写-4

    1、while 循环的特殊用法(遍历文件的每一行) while read line; do 循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE 文件中的每一行,且将行赋值给变量line 练习:扫描/etc/passwd 文件每一行,如发现GECOS 字段为空,则填充用户名和单位电话为629856…

    Linux干货 2016-09-01
  • 程序包管理

    程序包 linux的程序包主要分为两类;二进制可执行安装包和源代码程序文件包     二进制应用程序的组成部分:     二进制文件、库文件、配置文件、帮助文件   查看二进制程序所依赖的库文件:     ldd&nbs…

    Linux干货 2016-05-30
  • HA之corosync+pacemaker+crmsh

    高可用集群框架 图片转载之http://www.178linux.com/16656 实验拓扑: 两台节点服务器: node1     192.168.150.137     node1.com node2     192.168.150.138     node2.com nf…

    Linux干货 2017-01-18
  • linux函数和数组定义

    函数介绍:    函数function 是由若干条shell 命令组成的语句块,实现代码重用和模块化编程。    它与shell 程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。    函数和shell 程序比较相似,区别在于:   …

    Linux干货 2017-04-02
  • Linux三剑客之sed

    sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替…

    Linux干货 2016-08-11
  • 实战自制Linux操作系统

    实战自制Linux操作系统 自制linux系统 步骤概述: 1、新建一个硬盘2、在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标主机根文件系统8、移植bash命令和其库文件到根文件系统9、装载模块,实现网络功能10、启动测试 …

    Linux干货 2016-09-19