CentOS 6配置apache2.4+tomcat7负载均衡集群(ajp_proxy方式)

Apache 2010℃

Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持 PHP 页面)。Tomcat 是由 Apache 软件基金协会与 Sun 公司联合开发的一款Web服务器,它除了支持HTML等静态页面外,还支持JSP、Servlet 。在相同的运行环境下,Tomcat 对静态页面的反应速度没有 Apache 灵敏,生产环境使用 Apache 与 Tomcat 搭建负载均衡集群,可以提高网站并发。Apache+Tomcat搭建集群连接有三种方式:JKhttp_proxyajp_proxy

在开始下文之前,需要已安装了apache和tomcat,可参考:安装配置apache 、安装配置tomcat

1.准备两套tomcat环境

cp -a /usr/local/tomcat /usr/local/tomcat1
cp -a /usr/local/tomcat /usr/local/tomcat2
vim /usr/local/tomcat1/conf/server.xml
#修改tomcat1的标识名,这一步必须做
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
vim /usr/local/tomcat2/conf/server.xml
#修改tomcat2的远程停止服务端口,如果两台tomcat在不同机器上就不用修改
<Server port="8006" shutdown="SHUTDOWN">
#修改tomcat2的HTTP监听端口,如果两台tomcat在不同机器上就不用修改
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
#修改tomcat2的AJP监听端口,如果两台tomcat在不同机器上就不用修改
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
#修改tomcat2的标识名,这一步必须做
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
vim /usr/local/tomcat2/conf/context.xml
#要实现session复制,还需要在Context添加属性distributable="true"
<Context distributable="true">
vim /usr/local/tomcat1/conf/context.xml
#同理,还需tomcat1的Context添加属性distributable="true"
<Context distributable="true">
vim /usr/local/tomcat1/webapps/ROOT/test.jsp
#在tomcat1的wed路径下创建一个用于测试的页面
tomcat1 SessionID: <%=session.getId() %>
vim /usr/local/tomcat2/webapps/ROOT/test.jsp
#在tomcat2的wed路径下创建一个用于测试的页面
tomcat1 SessionID: <%=session.getId() %>

2.修改apache配置文件

vim /usr/local/apache2/conf/httpd.conf
#取消以下行前注释,载入所需模块、载入虚拟机配置
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
Include conf/extra/httpd-vhosts.conf
#增加默认主页index.jsp
DirectoryIndex index.html index.jsp
#再到最后添加:关闭正向代理、负载均衡的地址、权重等信息
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=jvm2
</proxy>
#修改apache虚拟机配置文件如下
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@qq.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>

3.测试

重启tomcat和apache后(如果启动不起来会在相应日志里打印,查询并排除即可),在浏览器地址栏输入http://<server IP>/test.jsp,可以看到使用的是tomcat1或者tomcat2下的test.jsp文件,一直刷新页面也是固定不变的,说明黏性Session设置没问题。

转载请注明:零五宝典 » CentOS 6配置apache2.4+tomcat7负载均衡集群(ajp_proxy方式)