使用mod_proxy_balancer实现负载均衡
2007-08-10 10:38
429 查看
负载均衡
由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。
针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。
mod_proxy_balancer
mod_proxy_balancer是Apache2.1版本及更高级版本才可以使用,在网上关于mod_proxy_balancer的介绍比较少,特别是中文版的。近日,由于项目的需要,需要用Apache做一个负载均衡。刚开始考虑使用的是使用mod_rewrite,由于mod_rewrite使用起来比较复杂,所以就放弃啦。
废话少说,下面介绍mod_proxy_balancer的一个简单的例子。
首先,在主配置文件httpd.conf添加以下Module:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
再增加以下元素:
ProxyRequests Off
<proxy balancer://test>
BalancerMember http://192.168.0.150:8001 loadfactor=1
BalancerMember http://192.168.0.150:8002 loadfactor=1
BalancerMember http://192.168.0.150:8003 loadfactor=1
BalancerMember http://192.168.0.150:8004 loadfactor=1
</proxy>
设置虚拟主机:
<VirtualHost *:80>
ServerAdmin chenzhaozhan@hotmail.com
ServerName www.example.com
ServerAlias example.com
ProxyPass / balancer://test/
ProxyPassReverse / balancer://test/
</VirtualHost>
这里需要多废话几句,刚开始我没有用虚拟主机,只是添加ProxyPass /test balancer://test,测试的时候没有什么问题,因为每个网站只有一个网站,访问的时候没有问题。后来用http://localhost/a.htm访问就崩溃啦,没有权限访问该页面,返回http 403的错误。最后改用以上的方式解决问题。
而且还可以同样在http.conf主配置文件主添如下元素:
<Location /balancer-manager>
SetHandler balancer-manager
Order Allow,Deny
Allow from all
</Location>
如果配置成功后你可以可以在地址栏输入 localhost/balancer-manager,将可以清楚的看到各节点的工作运行状态:)
可以看到以下的结果:
同样,可以配置server-status查看信息:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Allow from all
</Location>
由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。
针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。
mod_proxy_balancer
mod_proxy_balancer是Apache2.1版本及更高级版本才可以使用,在网上关于mod_proxy_balancer的介绍比较少,特别是中文版的。近日,由于项目的需要,需要用Apache做一个负载均衡。刚开始考虑使用的是使用mod_rewrite,由于mod_rewrite使用起来比较复杂,所以就放弃啦。
废话少说,下面介绍mod_proxy_balancer的一个简单的例子。
首先,在主配置文件httpd.conf添加以下Module:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
再增加以下元素:
ProxyRequests Off
<proxy balancer://test>
BalancerMember http://192.168.0.150:8001 loadfactor=1
BalancerMember http://192.168.0.150:8002 loadfactor=1
BalancerMember http://192.168.0.150:8003 loadfactor=1
BalancerMember http://192.168.0.150:8004 loadfactor=1
</proxy>
设置虚拟主机:
<VirtualHost *:80>
ServerAdmin chenzhaozhan@hotmail.com
ServerName www.example.com
ServerAlias example.com
ProxyPass / balancer://test/
ProxyPassReverse / balancer://test/
</VirtualHost>
这里需要多废话几句,刚开始我没有用虚拟主机,只是添加ProxyPass /test balancer://test,测试的时候没有什么问题,因为每个网站只有一个网站,访问的时候没有问题。后来用http://localhost/a.htm访问就崩溃啦,没有权限访问该页面,返回http 403的错误。最后改用以上的方式解决问题。
而且还可以同样在http.conf主配置文件主添如下元素:
<Location /balancer-manager>
SetHandler balancer-manager
Order Allow,Deny
Allow from all
</Location>
如果配置成功后你可以可以在地址栏输入 localhost/balancer-manager,将可以清楚的看到各节点的工作运行状态:)
可以看到以下的结果:
同样,可以配置server-status查看信息:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Allow from all
</Location>
相关文章推荐
- 使用mod_proxy_balancer实现负载均衡
- 使用apahce 的mod_proxy 实现jboss负载均衡
- Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
- 使用Apache的mod_proxy实现apache负载均衡
- 使用mod_proxy_balancer实现负载均衡
- 使用 mod_proxy方法设置Apache负载均衡
- Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(1)使用mod_jk
- 如何通过Apache mod_proxy 实现向后端反向代理,负载均衡。
- 【高可用HA】Apache (3) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_proxy
- Tomcat负载均衡原理详解及配置(Apache2.2.19+Tomcat7.0.12) mod_proxy_blancer方式已经成功实现
- 利用mod_proxy实现Apache和Tomcat整合负载均衡
- Apache+tomcat集群和负载均衡使用mod_proxy总结
- Windows下Apache+Tomcat做简单负载均衡--使用mod_proxy实现
- Apache+Tomcat实现负载均衡及集群(session同步)--三、动静分离(2)使用mod_proxy
- 使用apache的mod_jk实现jboss负载均衡
- Tomcat+Apache+mod_JK实现集群配置/负载均衡
- 使用Ribbon实现客户端负载均衡
- apache2.2+tomcat6+mod_jk模式实现负载均衡
- 使用NAT实现TCP负载均衡
- Windows下使用Apache与Tomcat实现负载均衡/反向代理的三种解决方案