用Apache做下载服务器负载均衡

有一个大文件要多人在线下载, 用http长连接下。部署在Apache上面, 人下的一多, 就会搞死server 。Apache最多同时只能保持几千个人同时在线, 就算换ngix等非堵塞的http 服务器, 也会被轻易搞死。

所以想到用cluster,把下载功能抽出来,专门弄几台廉价PC做server

每台server上部署一模一样的文件, 最前端做个负载均衡, 根据流量自动分流。

前端的负载均衡可以用路由设备来做, 也可以买F5, 但是最便宜的做法就是用Apache。

主要就是修改httpd.conf

1. 先打开负载均衡模块

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

2. 定义自己的负载均衡模块,负载算法用bubusyness

ProxyRequests Off
ProxyPass /piratesApi/data/obbmin  balancer://dlbalancer nofailover=On
<proxy balancer://dlbalancer/>
BalancerMember
BalancerMember
ProxySet lbmethod=bybusyness
</proxy>

3. 打开Apache的负载观察模块

#just for test
<Location /balancer-manager>
  SetHandler balancer-manager
  Order Deny,Allow
  Deny from all
  Allow from all
</Location>

4.  通过访问以下地址就能看到你的负载调度情况

顺便提一下, 淘宝有一套TFS的分布式文件系统。 我研究了一下, 它适用的场景是多人频繁下载小文件, 和我这里的单一大文件多人下载不同。

#以上, 蒋彪#

相关阅读:

Linux下Apache与多个Tomcat 集群负载均衡

Nginx Tomcat 集群负载均衡解决笔记

实例详解Tomcat组件安装+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡

CentOS 6.3利用Apache来做集群实现负载均衡

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ad15f78146fd6874956e81e58ca33056.html