注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Travel,Discover

Time ends everything~

 
 
 

日志

 
 

Apache+Resin集群实现负载均衡  

2010-04-16 13:52:11|  分类: 工作日志 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
resin自生就可以进行负载均衡设置,但是只有professional版本才支持,这个东西的license一个CPU要$500,所以实际使用的apache+resin的组合(免费嘛^_^),apache(前台)+ resin(后台集群)可以很好的实现负载均衡。apache用来服务静态页面,resin用来服务动态页面。
如果并发访问量很大的话,就应该考虑在apache前面加squid做cache、通过dns轮寻,再加上使用LVS将是更好的方案。
本文示例中使用3台linux机器,其中1台装apache作为前端服务器,另外2台装resin作为后端服务器。
 
1. 实验环境
apache机器可以加两块网卡,对外公网IP,接受用户请求,对内使用内网IP,与后端的Resin通信
202.38.2.*:        前端服务器(公网IP)
192.168.11.5:   前端服务器(内网IP)
192.168.11.10: 后端服务器1
192.168.11.11: 后端服务器2

 
2. 前端服务器安装apache和resin模块
前端安装apache,安装resin,要联合apache安装
#./configure --with-apxs=/home/apache/bin/apxs --with-java-home=/home/jdk/ --prefix=/home/resin --with-apache=/home/apache
将resin编译为apache的模块,载入模块mod_caucho.so,本机上的resin就不用配置了,所以就不会发挥作用
此处略去...


3. 后台服务器1&2分别安装resin
因为前端已经安装了mod_caucho.so,所以此处的resin只需要正常安装就可以了(通常resin直接解包之后就能启动了,可以不用make,make install),通常两个后端服务器的内容都是完全一样的,除去ip和port
此处略去...

 
4. 配置后端resin
需要修改2台后端resin服务器的配置文件resin.conf,路径/usr/local/resin/conf/resin.conf,如果有多个resin,均按此方式配置
# vi /usr/local/resin/conf/resin.conf
找到配置文件中的<!-- define the servers in the cluster -->,修改负载均衡配置,需要设置服务器的ID、IP和port,例如:
192.168.11.10的设置如下
<server id="a" address="192.168.11.10" port="6800"/>
192.168.11.11的设置如下:
<server id="b" address="192.168.11.11" port="6800"/>

 
5. 配置前端apache
需要对前端服务器(192.168.11.5)的apache配置文件httpd.conf进行修改
# vi /homel/apache/conf/httpd.conf
(1)修改DirectoryIndex
找到配置文件中的DirectoryIndex配置:
DirectoryIndex index.html index.html.var
增加index.jsp(动态页面),修改为:
DirectoryIndex index.jsp index.html index.html.var
(2)修改resin相关配置
在apache的配置文件httpd.conf最后增加以下内容
LoadModule caucho_module /home/apache/modules/mod_caucho.so 
ResinConfigServer 192.168.11.10 6800
ResinConfigServer 192.168.11.11 6800 
CauchoConfigCacheDirectory /tmp 
CauchoStatus yes

ResinConfigServer配置的是调用resin负载均衡器的IP地址和端口号,
192.168.11.5的apache前端服务器,分别调用了192.168.11.10和192.168.11.11两个Resin后端服务器


6. 访问测试
(1)编写测试页面
为了检查负载均衡是否生效,需要编写测试页面a.jsp,通过在web页面和各Resin的日志中显示的内容进行辨别,下面192.168.11.10的其中一个Resin为例说明
<%System.out.println("server 192.168.11.10");%>          //在Resin日志中显示 
server 192.168.11.10                                                      //在web页面显示
其他Resin的a.jsp参照上例,只需要将其中的内容替换掉,例如192.168.11.11的a.jsp文件可以写成
<%System.out.println("server 192.168.11.11");%>          //在Resin日志中显示 
server 192.168.11.11                                                      //在web页面显示
(2)发布项目
分别将来两个a.jsp文件放到192.168.11.10和192.168.11.11设置的resin的虚拟目录中,如果某resin的虚拟目录是
<web-app id="/" root-directory="webapps/ROOT"/>,则需要将a.jsp放到resin的webapps/ROOT目录下
(3)启动服务
#启动Apache
#/home/apache/bin/apachectl -k start
#分别启动调用的resin
启动192.168.11.11的resin中id为"a"的服务,需要在192.168.11.11服务器执行如下命令
# /usr/local/Resin/bin/httpd.sh -server a start
启动192.168.11.10的resin中id为"b"的服务,需要在192.168.11.10服务器执行如下命令
# /usr/local/resin/bin/httpd.sh -server b start
(4)验证a.jsp
使用IE多次访问web发布页面,通过页面显示的内容和resin日志打印的内容,检查是否随机调用各后端服务器1&2的resin的a.jsp文件。
Web页面的访问地址如下
http://202.38.2.*/a.jsp
查看resin的方法如下,如果要看查看192.168.11.10的resin中id为"a"服务的日志,需要在192.168.11.10服务器执行如下命令
# tail –f / usr/local/resin/log/a.log
多次访问http://202.38.2.*/a.jsp,如果每次会随机显示其中一个resin的a.jsp文件的内容,之后关闭其中个几个resin(不是全部关闭),http://202.38.2.*/a.jsp仍能正常访问,至此就完成了负载均衡的测试,证明配置成功。之后就可以正式发布项目了。
  评论这张
 
阅读(1537)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018