`

Apache+Resin集群实现负载均衡 (转载)

 
阅读更多

Apache+Resin集群实现负载均衡  

 

 
 
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仍能正常访问,至此就完成了负载均衡的测试,证明配置成功。之后就可以正式发布项目了。
分享到:
评论

相关推荐

    Apache+Resin做负载均衡 [windows 2003]

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache和Resin作为两个常用的Web服务器,可以通过集群配置实现负载均衡。本篇将详细讲解如何在Windows 2003操作系统上利用Apache和Resin搭建负载均衡环境,...

    apache与resin整合实现负载均衡.doc

    Apache 与 Resin 整合实现负载均衡是一种常见的 Web 服务器集群技术,旨在提高网站的可用性和性能。这种集成允许 Apache 作为前端服务器接收请求,并根据预设策略将这些请求分发到多个后端 Resin 服务器,这些服务器...

    Apache2+resin-2.1.16

    Resin还提供了负载均衡、集群和热部署等高级特性。 在Apache2和Resin的集成过程中,通常采用代理配置,使Apache2作为前端服务器,处理HTTP请求,然后将动态内容的请求转发到后台的Resin服务器。这种方式被称为...

    Nginx+KeepAlived+Tomcat负载架构

    - **Tomcat**:作为后端应用服务器,通常部署多个实例以实现负载均衡。 ##### 2. 实现步骤 ###### 2.1 安装依赖库 - **步骤**:使用`yum`命令安装必要的依赖库和开发工具,例如`gcc`、`libjpeg`等。 ```bash ...

    resin4.0和apache 2.2搭建服务器

    在这个配置中,Apache会根据策略(如轮询、最少连接数等)将请求分发到Resin服务器集群,从而实现负载均衡。 通过这样的整合,我们可以充分利用Apache的稳定性和Resin的高性能,构建出一个高可用、高效率的Web服务...

    利用nginx实现动静分离和负载均衡 by 李乐,杨.doc

    同时,Nginx 可以根据策略将请求分发到多个后端服务器,实现负载均衡,提升系统的整体处理能力。 例如,Nginx 配置中可以包含以下部分: ```nginx http { upstream backend { server 127.0.0.1:8888; server ...

    resin服务器

    - **内置负载均衡**:Resin支持集群部署,可以自动在多个Resin实例之间分配请求,实现负载均衡。 - **Quercus PHP支持**:Resin内建了对PHP的支持,名为Quercus,这使得Resin能够运行PHP应用程序,提供Java和PHP...

    浅谈Resinapache整合负载.doc

    通过以上步骤,Apache与Resin成功整合,实现了负载均衡,可以有效分发用户请求,提高系统处理能力,并提供冗余,增加系统的可靠性。这种架构在大型网站或企业级应用中非常常见,能够灵活应对高并发场景,同时确保...

    resin-3.0.17

    - **负载均衡**:Resin支持与Apache的集成,可以实现负载均衡,将流量分布到多个Resin实例,提高系统可用性和稳定性。 3. **功能特性**: - **JSP与Servlet支持**:Resin完全支持JSP和Servlet规范,提供了一个...

    resin-2.1.17

    5. **集群和负载均衡**:Resin 2.1.17可以配置为集群环境,实现服务器间的负载均衡和故障转移,增强了系统的可用性和可靠性。 6. **内置缓存**:Resin具有内置的对象缓存系统,可以提高数据访问速度并减少数据库压力...

    resin4.0配置文件介绍

    Resin 还提供了负载均衡的功能,可以配置多个 Resin 实例,并通过负载均衡器来分配请求。同时,Resin 也提供了对集群中的 Resin 实例进行监控的能力。 #### 四、Resin 4.0 的迁移指南 迁移至 Resin 4.0 可能涉及到...

    web服务器resin 4-pro版

    另外,“resin4”和“resin pro”是Resin的不同版本,前者代表第4代产品,后者强调其专业特性,如负载均衡、集群支持和更高级的安全特性。 在压缩包中包含的“resin”文件,很可能就是Resin服务器的安装程序或者...

    resin 入门基础教程.pdf

    Resin Professional 在免费版的基础上增加了更多的高级特性,如负载均衡、故障转移等企业级功能。 #### 二、安装指南 - **快速启动** - Resin 安装快速入门:本章节提供了 Resin 的快速安装步骤,包括下载、解压...

    web开发的服务器resin3.1.3

    - **内置负载均衡**:Resin支持内置的负载均衡器,可以将请求分发到多个后端服务器,提升系统可用性和可靠性。 - **Quercus PHP支持**:Resin还支持运行PHP应用程序,通过Quercus(一个纯Java的PHP解释器)实现,...

    resin-4.0.50

    3. **集群和负载均衡**:为了提高可用性和可扩展性,Resin 4.0.50可能集成了更强大的集群和负载均衡功能,使得多台服务器可以协同工作,提高服务的可用性和处理能力。 4. **安全增强**:安全性是企业级应用的重要...

    resin-reference-3.0.13文档

    - **负载均衡配置**:解释了如何使用 Resin 实现请求的负载均衡分配。 ##### 1.9 持久化和分布式会话 (Persistent and Distributed Sessions) 这部分涉及了 Resin 对持久化和分布式会话的支持,这对于跨多台服务器...

    (word完整版)网站部署方案.doc

    在服务器部署策略上,方案提出了将主站、我的空间和查询、社区这3个子站点分别部署在3台独立的服务器上,以实现负载均衡。这样可以根据各个子站点的流量情况进行调整,确保任何一台服务器都不会过度负荷。同时,考虑...

    人人网使用的开源软件列表.pdf

    LVS(Linux Virtual Server)提供四层负载均衡,人人网用它来替代硬件负载均衡设备,确保高可用性和高并发。在搜索引擎方面,人人网利用Lucene构建了搜索集群,提供搜索服务。Netty是一个高性能的Java网络框架,替代...

    web容器示例程序

    Resin提供了包括负载均衡、集群、缓存和JMS在内的高级功能,适用于大型复杂应用。Resin也支持非阻塞I/O,能处理大量并发连接。 压缩包中的文件名列表暗示了这是一个标准的Java项目结构: - `clean.bat`:可能是一...

Global site tag (gtag.js) - Google Analytics