Apache的负载均衡之mod_jk模块实现
先配置mod_jk的代理功能,# yum install -y httpd-devel# rpm -ql httpd-devel
/usr/sbin/apxs
apxs是httpd安装外部模块必备的
# yum groupinstall"Development Tools" "Server Platform Development" -y //所需要的包组。
编译安装需要的环境。
# tar xftomcat-connectors-1.2.40-src.tar.gz
# ls
a install.log oracle
apache-tomcat-7.0.56.tar.gzinstall.log.syslog root20141030092112523.zip
apache-tomcat-8.0.20.tar.gzjdk-8u31-linux-i586.rpmtomcat-connectors-1.2.40-src
b lamp tomcat-connectors-1.2.40-src.tar.gz
# cd tomcat-connectors-1.2.40-src
# ls
conf docsHOWTO-RELEASE.txtjkstatus LICENSEnativeNOTICE README.txtsupporttools xdocs
# cdnative/
# ls
aclocal.m4 apache-2.0 BUILDING.txtconfigure docsMakefile.amnetscape scripts TODO.txt
apache-1.3 buildconf.shcommon configure.aciisMakefile.inREADME.txtSTATUS.txt
# ./configure--with-apxs=/usr/sbin/apxs
# make && makeinstall
。
。
。
----------------------------------------------------------------------
chmod 755/usr/lib64/httpd/modules/mod_jk.so
Please be sure to arrange/etc/httpd/conf/httpd.conf...
make: Leaving directory`/root/tomcat-connectors-1.2.40-src/native/apache-2.0'
make: Entering directory`/root/tomcat-connectors-1.2.40-src/native'
make: Entering directory`/root/tomcat-connectors-1.2.40-src/native'
make: Nothing to be done for`install-exec-am'.
make: Nothing to be done for`install-data-am'.
make: Leaving directory`/root/tomcat-connectors-1.2.40-src/native'
make: Leaving directory`/root/tomcat-connectors-1.2.40-src/native'
# cd /etc/httpd
# ls
conf conf.dlogsmodules run
# cd conf.d/
# ls
php.conf READMEwelcome.conf
# vim mod_jk.conf
# Load the mod_jk
LoadModule jk_modulemodules/mod_jk.so
JkWorkersFile/etc/httpd/conf.d/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount /*TomcatA
JkMount /status/statA
~
# 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
# httpd -t
Syntax OK
# service httpd restart
Stopping httpd:
Starting httpd: [ OK]
#
至此,一个基于mod_jk模块与后端名为TomcatA的worker通信的配置已经完成,重启httpd服务即可生效。
还有状态信息
要实现负载均衡,至少需要两个tomcat还在本机上操作,配置另一个版本的tomcat,配置完成之后访问http://192.168.1.116:9080 mod_jk可直接支持负载均衡,需要启用一个特殊型的worker:lb。# vim mod_jk.conf
#Load the mod_jk
LoadModule jk_modulemodules/mod_jk.so
JkWorkersFile/etc/httpd/conf.d/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount /*lbcluster1
JkMount /status/statA
~
# 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
~
# httpd -t
Syntax OK
# service httpd restart
Stopping httpd:
Starting httpd:
#
到此mod_jk实现负载均衡就配置好了,测试如下。
访问http://192.168.1.116
再次刷新
页:
[1]