您的位置:首页 > 运维架构 > Tomcat

apache+tomcat 实现负载均衡方案

2013-10-12 07:38 393 查看
本文环境:OS:CentOS 5.3 x86_64 Apache 一台(Apache/2.2.3,本文是rpm 安装的)ip 为:192.168.10.251 Tomcat 两台(apache-tomcat-6.0.20.tar.gz) Tomcat-1 IP 为:192.168.10.252 Tomcat-2 IP 为:192.168.10.253

1. 首先分别安装Apache,jdk,tomcat 并且可以正常运行(略)

2. 配置Apache

[root@linuxidc ]# cd /etc/httpd/conf [root@linuxidc ]# vi httpd.conf (1) 启动代理模块(去掉如下模块前面的注释) LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

(2) 在文件的最后面加入如下代理负载均衡信息 ProxyRequests Off <proxy balancer://cluster> BalancerMember ajp://192.168.10.252:8009/b loadfactor=1 route=jvm1 BalancerMember ajp://192.168.10.253:8009/a loadfactor=1 route=jvm2 </proxy> 解释:其中192.168.10.252:8009/b 和192.168.10.253:8009/a 分别为两个tomcat 的项目,jvm1 和jvm2 是标识,要和下文的tomcat 配置文件保持一致,其中端 8009 为ajp 协议的Apache 和tomact 的通讯端口

(3) 配置虚拟主机 <VirtualHost *:80> ServerAdmin www.linuxidc.com ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://cluster/ </VirtualHost>

3. 重启Apache 服务 [root@linuxidc ]# /etc/init.d/httpd restart

4. Tomcat 的配置 (1) 分别把事先准备好的两个war 包丢到/usr/local/tomcat/webapps/目录中,这样当 tomcat 启动的时候就会自动解包,war 包的名称分别为b.war 和a.war 分别属于 192.168.10.252 和192.168.10.253 即访问方式为:http://192.168.10.252:8080/b 和 http://192.168.10.253:8080/a,内容分别为bbbbbbbbbb 和aaaaaaaaaaa(此处是为了区 分) (2) 配置主配置文件 [root@linuxidc-2 conf]# cd /usr/local/tomcat/conf/ [root@linuxidc-2 conf]# vi server.xml 找到如下一行 <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1"> 注意这里的 jvm1 一定要和Apache 的代理配置相同即192.168.10.253 此处应该改为 jvm2 (3) 重新启动tomcat

5. 现在就可以验证结果了, 在测试机的host 文件里指定www.linuxidc.com 对应为 192.168.10.251,然后在浏览器里访问:http:// www.linuxidc.com 会发现返回的是两个tomcat 的项目页面而且是轮询,为了更直观的查看可以用如下命令 [root@linuxidc-2 conf]# curl www.linuxidc.com <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="http://192.168.10.251:80/a/"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1>aaaaaaaaaaaaa</h1> </body> </html> [root@linuxidc-2 conf]#curl http://192.168.10.251/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="http://192.168.10.251:80/b/"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1>bbbbbbbbbbbbb</h1> </body> </html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: