Apache的负载均衡之mod_jk模块实现

先配置mod_jk的代理功能,

[[email protected] ~]# yum install -y httpd-devel

[[email protected] ~]# rpm -ql httpd-devel

/usr/sbin/apxs

apxs是httpd安装外部模块必备的

[[email protected] ~]# yum groupinstall"Development Tools" "Server Platform Development" -y //所需要的包组。

编译安装需要的环境。

[[email protected] ~]# tar xftomcat-connectors-1.2.40-src.tar.gz

[[email protected] ~]# ls

a                            install.log              oracle

apache-tomcat-7.0.56.tar.gz  install.log.syslog       root20141030092112523.zip

apache-tomcat-8.0.20.tar.gz  jdk-8u31-linux-i586.rpm  tomcat-connectors-1.2.40-src

b                            lamp                    tomcat-connectors-1.2.40-src.tar.gz

[[email protected] ~]# cd tomcat-connectors-1.2.40-src

[[email protected] tomcat-connectors-1.2.40-src]# ls

conf docs  HOWTO-RELEASE.txt  jkstatus LICENSE  native  NOTICE README.txt  support  tools xdocs

[[email protected] tomcat-connectors-1.2.40-src]# cdnative/

[[email protected] native]# ls

aclocal.m4 apache-2.0    BUILDING.txt  configure    docs  Makefile.am  netscape   scripts     TODO.txt

apache-1.3 buildconf.sh  common        configure.ac  iis  Makefile.in  README.txt  STATUS.txt

[[email protected] native]# ./configure--with-apxs=/usr/sbin/apxs

[[email protected] native]# make && makeinstall

----------------------------------------------------------------------

chmod 755/usr/lib64/httpd/modules/mod_jk.so

Please be sure to arrange/etc/httpd/conf/httpd.conf...

make[1]: Leaving directory`/root/tomcat-connectors-1.2.40-src/native/apache-2.0‘

make[1]: Entering directory`/root/tomcat-connectors-1.2.40-src/native‘

make[2]: Entering directory`/root/tomcat-connectors-1.2.40-src/native‘

make[2]: Nothing to be done for`install-exec-am‘.

make[2]: Nothing to be done for`install-data-am‘.

make[2]: Leaving directory`/root/tomcat-connectors-1.2.40-src/native‘

make[1]: Leaving directory`/root/tomcat-connectors-1.2.40-src/native‘

[[email protected] ~]# cd /etc/httpd

[[email protected] httpd]# ls

conf conf.d  logs  modules run

[[email protected] httpd]# cd conf.d/

[[email protected] conf.d]# ls

php.conf README  welcome.conf

[[email protected] conf.d]# vim mod_jk.conf

# Load the mod_jk

LoadModule jk_module  modules/mod_jk.so

JkWorkersFile  /etc/httpd/conf.d/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel debug

JkMount /*  TomcatA

JkMount /status/  statA

~

[[email protected] conf.d]# vim/etc/httpd/conf.d/workers.properties

worker.list = TomcatA,statA

worker.TomcatA.port=8009

worker.TomcatA.host=192.168.1.116

worker.TomcatA.type=ajp13

worker.TomcatA.lbfactor=1

worker.statA.type = status

[[email protected] conf.d]# httpd -t

Syntax OK

[[email protected] conf.d]# service httpd restart

Stopping httpd:                                           [  OK  ]

Starting httpd:                                            [ OK  ]

[[email protected] conf.d]#

至此,一个基于mod_jk模块与后端名为TomcatA的worker通信的配置已经完成,重启httpd服务即可生效。

还有状态信息

要实现负载均衡,至少需要两个tomcat还在本机上操作,配置另一个版本的tomcat,配置完成之后访问http://192.168.1.116:9080

mod_jk可直接支持负载均衡,需要启用一个特殊型的worker:lb。

[[email protected] conf.d]# vim mod_jk.conf

#Load the mod_jk

LoadModule jk_module  modules/mod_jk.so

JkWorkersFile  /etc/httpd/conf.d/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel debug

JkMount /*  lbcluster1

JkMount /status/  statA

~

[[email protected] conf.d]# vim workers.properties

worker.list = lbcluster1,statA

worker.TomcatA.port=8009

worker.TomcatA.host=192.168.1.116

worker.TomcatA.type=ajp13

worker.TomcatA.lbfactor=1

worker.TomcatB.port=9009

worker.TomcatB.host=192.168.1.116

worker.TomcatB.type=ajp13

worker.TomcatB.lbfactor=1

worker.lbcluster1.type = lb

sorker.lbcluster1.sticky_session = 0

worker.lbcluster1.balance_workers =TomcatA, TomcatB

worker.statA.type = status

~

[[email protected] conf.d]# httpd -t

Syntax OK

[[email protected] bin]# service httpd restart

Stopping httpd:                                           [  OK  ]

Starting httpd:                                           [  OK  ]

[[email protected] bin]#

到此mod_jk实现负载均衡就配置好了,测试如下。

访问http://192.168.1.116

再次刷新

时间: 2024-12-25 00:12:44

Apache的负载均衡之mod_jk模块实现的相关文章

Apache负载均衡之mod_proxy模块的代理功能

本次只是先在实验环境下实现Apache做代理,实现的过程比较简单,本人在一台虚拟机上(IP:192.168.1.116)使用yum安装了httpd,php和tomcat,apache-tomcat-7.0.56. 第一 步:yum安装httpd,php.安装好之后启动httpd并且访问. 第二安装tomcat,过程省略其安装成功分别访问截图如下. 第三步 接下来检查httpd的proxy的模块.要想实现Apache的负载均衡,需有如下几个模块. # httpd -M proxy_module (

Apache负载均衡之mod_proxy模块实现

实验环境:一台虚拟机,IP:192.168.1.117 实验目的:学习mod_proxy的负载功能,实现Apache反代并且负载到后端两个tomcat. 实验步骤: 在/etc/httpd/conf.d目录下增加配置文件,实现Apache的负载均衡. # cd /etc/httpd/conf.d # vim mod_proxy.conf <Proxy balancer://lbcluser1> BalancerMember http://192.168.1.117:8080 loadfacto

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

apache + tomcat 负载均衡分布式集群配置

Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问量过大,就会出现服应用务器崩溃的情况,这个时候怎么办,难道就只能去重启服务器吗?好,如果是一般的小型公益网站到也无所谓,但如果是比如像大型航空公司售票等电子商务网站,每天每小时都有大量的订单业务,如果这些售票系统一旦崩溃后,再去重启,这些时间和客户的损失就直接会影响到航空公司的利益,这些损失如何去避

tomcat结合nginx或apache实现负载均衡

基于Nginx为web代理服务器配置 前端Nginx配置: yum -y install nginx-1.4.7-1.el6.ngx.x86_64.rpm vim /etc/nginx/nginx.conf 添加一下内容 upstream tomcat { 定义一个名为tomcat的upstream server 172.16.254.151:80; server 172.16.254.144:8080; } 编辑/etc/nginx/conf.d/default.conf配置文件 启动ngin

Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 大纲

Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 大纲 前言 实验拓扑 实验步骤 安装配置tomcat 安装配置Apache Httpd并测试 实现session sticky 实现Session Cluster 总结 前言 上篇文章我们介绍如何构建一个LANMT平台并搭建一个jspxcms, 这次我们介绍使用apache httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 实验拓扑 实验

Apache+Tomcat负载均衡问题集锦

之前在windows 环境下搭建了下apache+tomcat负载均衡(不会的可以参考之前的文档,文档对于linux和windows都适用),一帆风顺,没有出现任何问题,今天尝试着在linux下搭建了下,其中遇到几个问题,在这里给大家分享下. linux环境,三个redhat6.5 x86_64,其中192.168.1.2安装apache,192.168.1.3和192.168.1.4安装tomcat,这里不再介绍配置,如果有不会的,可以参考前边的文章. 问题一: SESSIONID随着页面刷新

apache + tomcat 负载均衡模式下 getLocalAddr() 为null的解决办法

在apache + tomcat 负载均衡模式下,通过request.getLocalAddr()无法获取服务器端的ip地址,返回值为null的问题,查找了下,百度里没有有价值的回答,到官方网站上查找了下,说是: The AJP protocol only passes the web server host name and port. It does not pass the IP address. Therefore, getLocalName() will return whatever

再谈Apache ActiveMQ 负载均衡

前面文章<Apache ActiveMQ 负载均衡 >在最后有提到一个场景,就是当AMQ的节点数大于2个的时候(HA + LB),且配置了消息回流的情况下的一些问题. HA + LB的基本结构如下图: 问题即发生在当生产者将消息投递到Master节点后(AMQ SERVER),消费者与A节点建立连接(Broker),根据AMQ的"预先消费"策略预先消费了一定数量的消息,即A节点消费了Master节点的一部分消息,A节点在将消息转发至消费者Consumer. 消费者在消费过程