使用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

相关推荐

  • N26-博客作业-week2

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。   cp:copy 复制文件和路径 cp [OPTION]… [-T] SOURCE DEST cp [OPTION]… SOURCE… DIRECTORY cp [OPTION]… -t DIRECTORY SOURCE&…

    Linux干货 2017-02-12
  • Linux系统程序包的管理-Yum及编译安装

          Yum 是通过分析RPM的标头数据后,根据各软件的依赖关系制作出有依赖关系时的的解决方案,然后可以自动处理软件的依赖性问题,以解决软件安装或移除与升级的问题。       由于发行版必须要先释放软件,然后将软件放置于yum服务器上面,以提供用户端用来安装与升…

    2017-05-02
  • 深入了解磁盘结构

    一、     linux中常见的磁盘:   无论什么操作系统,归根还是要落实与磁盘上的,对于磁盘的管理也是linux管理必备的一项技能。在linux中“一切皆文件”的思想贯彻整个linux的学习中,包括像是磁盘等的硬件也是在linux的/dev/目录下类似于文件形式的存放,常见的SATA口USB优盘或是SCS…

    Linux干货 2016-08-29
  • linux文件系统(ext2\ext3\ext4,xfs,btrfs…)的介绍[转载]

    ext2\ext3\ext4,xfs,btrfs 都是针对服务器系统越来越高效实用的日志文件系统 日志文件系统:    日志文件系统是一种即使在断电或者是操作系统崩溃的情况下保证文件系统一致性的途径。XFS对文件系统元数据提供了日志支持。当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志。XFS的日志被保存在磁盘块的…

    Linux干货 2017-01-31
  • PXE批量部署linux操作系统

       前言    在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我们追求高逼格形象的技术人员来讲当然是不可以接受的,为此,pxe模式批量部署系统应运而生。   &n…

    Linux干货 2015-05-23
  • Linux系统grep正则表达式

    一、grep命令的使用 首先,我们来了解grep命令,grep (global search regular expression and printing),全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Linux中的grep命令包括、grep, egrep和fgrep 。egrep是grep…

    Linux干货 2017-04-23