Apache负载均衡+Tomcat集群
httpd-2.4.9 + apache-tomcat-7.0.47配置负载均衡
目标:
使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求:
1、Apache 做为 HttpServer,后面连接多个 tomcat 应用实例,并进行负载均衡。
2、为系统设定 Session 超时时间,包括Apache 和 tomcat
3、为系统屏蔽文件列表,包括 Apache 和 tomcat
注:本例程以3台机器为例子,即同一台机器上装apache和另外2个Tomcat。
原理:
apache和tomcat的3种不同方式集成
1、jk方式集成
下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内
修改conf/httpd.conf配置
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount /*.do loadbalancer
JkMount /*.jsp loadbalancer
增加conf/workers.properties文件,添加内容
worker.list=loadbalancer
worker.worker2.port=9009 #ajp的监听端口
worker.worker2.host=10.0.0.51
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=9009
worker.worker3.host=10.0.0.52
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2,worker3#这里在的worker2、worker3为需要与上边tomcat设置的别名一致
worker.loadbalancer.sticky_session=1
配置完成
访问http://10.0.0.51:8080/test/test.jsp,检查是否能正常访问。
访问http://10.0.0.52:8080/test/test.jsp,检查是否能正常访问。
访问http://10.0.0.31:80/test/test.jsp,检查是否能正常访问。
2、ajp_proxy
去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置
Include conf/extra/httpd-vhosts.conf
LoadModule proxy_modulemodules/mod_proxy.so
LoadModule proxy_ajp_modulemodules/mod_proxy_ajp.so
LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
LoadModule proxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModule proxy_http_modulemodules/mod_proxy_http.so
注意:
除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;
如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;
ProxyRequests Off
BalancerMember ajp://10.0.0.51:9009loadfactor=1 route=jvm1
BalancerMember ajp://10.0.0.52:9009loadfactor=1 route=jvm1
修改conf/extra/httpd-vhosts.conf增加配置
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://loadbalancer/stickysession=jsessionid nofailover=On
ProxyPa***everse / balancer://loadbalancer/
ErrorLog"logs/loadbalancer-error.log"
CustomLog"logs/loadbalancer-access.log" common
配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。
3、http_proxy
http_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变
ProxyRequests Off
BalancerMember http://10.0.0.51:9009loadfactor=1 route=jvm1
BalancerMember http://10.0.0.52:9009loadfactor=1 route=jvm1
配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。
一、前期准备工作:安装用的程序(前提保证已安装了JDK1.7以上的版本)
二、安装过程
yum remove apr-util-devel aprapr-util-mysql apr-docs apr-devel apr-util apr-util-docs
yum install flex bison lynx
具体步骤如下:
1.解决apr
APR和APR-UTIL的下载地址:http://apr.apache.org/download.cgi
[root@yahoo test]# tar -zxfapr-1.4.5.tar.gz
[root@yahoo apr-1.4.5]# ./configure--prefix=/usr/local/apr
[root@yahoo apr-1.4.5]# make
[root@yahoo apr-1.4.5]# make install
2.解决APR-util
[root@yahoo test]# tar -zxfapr-util-1.3.12.tar.gz
[root@yahoo apr-util-1.3.12]# ./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@yahoo apr-util-1.3.12]# make
[root@yahoo apr-util-1.3.12]# make install
3解决pcre
下载:http://sourceforge.net/projects/pcre
下载地址二:http://ftp.exim.llorien.org/pcre/
#unzip -o pcre-8.10.zip
#cd pcre-8.10
#./configure --prefix=/usr/local/pcre
#make
#make install
cp -r apr-1.5.1 httpd-2.4.9/srclib/apr
cp -r apr-util-1.5.1httpd-2.4.9/srclib/apr-util
安装httpd
cd httpd-2.4.9
./configure --prefix=/local/apache2--enable-so --enable-mods-shared=all --enable-proxy --enable-proxy-connect--enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util--with-pcre=/usr/local/pcre --with-included-apr
make
make install
三、配置
1、Apache配置
httpd.conf配置
再找到
DirectoryIndex index.html index.jsp
在最下面加入
ProxyRequests Off
BalancerMember ajp://10.0.0.51:8009loadfactor=1 route=jvm1
BalancerMember ajp://10.0.0.52:9009loadfactor=1 route=jvm1
上面的2个BalancerMember成员是我们配置的tomcat集群。后面会说明的。
包含虚拟主机
Include conf/extra/httpd-vhosts.conf #把注释去掉。
httpd-vhosts.conf设置
在文件(extra/httpd-vhosts.conf)最下面加入
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPa***everse / balancer://cluster/
2 tomcat配置
配置 Engine
把原来的配置注释掉,把下面一句去掉注释。
配置 Connector
原来的默认配置。
配置Cluster(每个tomcat中都要修改)
原来的配置。
修改为以下的代码:
expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> address="auto" port="5001" selectorTimeout="100" maxThreads="6"/> filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> 这个设置是主要用以tomcat的集群。 四、启动服务,测试tomcat自带的例子 1、测试apache和tomcat协作。 先在每个tomcat中的\webapps\ROOT下的index.jsp下面加上以下的测试代码部分:(X代表不同的tomcat的输出不同的信息),把index.html删除,以免影响测试效果。在最后面的加上.即