|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令。
一样平常来讲,负载平衡就是将客户真个哀求分流给后真个各个实在服务器,到达负载平衡的目标。另有一种体例是用两台服务器,一台作为主服务器(Master),另外一台作为热备份(HotStandby),哀求全体分给主服务器,在主服务器当机时,当即切换到备份服务器,以进步体系的全体可
第一次看到这个题目时我也很惊奇,Apache竟然还能做负载平衡?真是太壮大了。经由一番查询拜访后发明切实其实能够,并且功效一点都不差。这都回功于mod_proxy这个模块。不愧是壮大的Apache啊。
空话少说,上面就来注释一下负载平衡的设置办法。
一样平常来讲,负载平衡就是将客户真个哀求分流给后真个各个实在服务器,到达负载平衡的目标。另有一种体例是用两台服务器,一台作为主服务器(Master),另外一台作为热备份(HotStandby),哀求全体分给主服务器,在主服务器当机时,当即切换到备份服务器,以进步体系的全体牢靠性。
1.负载平衡的设置
1).基础设置
Apache能够应对下面这两种需求。先来会商一下怎样做负载平衡。假定一台apache服务器域名为www.a.com,起首必要启用Apache的几个模块:
Httpd.conf代码
.代码以下:
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
mod_proxy供应代办署理服务器功效,mod_proxy_balancer供应负载平衡功效,mod_proxy_http让代办署理服务器能撑持HTTP协定。假如把mod_proxy_http换成其他协定模块(如mod_proxy_ftp),也许能撑持其他协定的负载平衡,有乐趣的伴侣能够本人实验一下。
然后要增加以下设置:
Httpd.conf代码
.代码以下:
ProxyRequestsOff
<Proxybalancer://mycluster>
BalancerMemberhttp://node-a.myserver.com:8080
BalancerMemberhttp://node-b.myserver.com:8080
</Proxy>
ProxyPass/balancer://mycluster/
#告诫:以下这段设置仅用于调试,毫不要增加到临盆情况中!!!
<Location/balancer-manager>
SetHandlerbalancer-manager
orderDeny,Allow
Denyfromall
Allowfromlocalhost
</Location>
注:node-a.myserver.com,node-b.myserver.com是别的两台服务器的域名,不是以后服务器的域名
从下面的ProxyRequestsOff这条能够看出,实践上负载平衡器就是一个反向代办署理,只不外它的代办署理转发地点不是某台详细的服务器,而是一个balancer://协定:
ProxyPass/balancer://mycluster协定地点能够任意界说。然后,在<Proxy>段中设置该balancer协定的内容便可。BalancerMember指令能够增加负载平衡组中的实在服务器地点。
上面那段<Location/balancer-manager>是用来监督负载平衡的事情情形的,调试时能够加上(临盆情况中克制利用!),然后会见http://localhost/balancer-manager/便可看到负载平衡的事情情况。
OK,改完以后重启服务器,会见你的Apache地点服务器的地点(www.a.com),便可看到负载平衡的效果了。
堕落提醒:
会见网页提醒InternalServeralError,观察error.log文件
Error.log代码
.代码以下:
[warn]proxy:NoprotocolhandlerwasvalidfortheURL/admin/login_form.IfyouareusingaDSOversionofmod_proxy,makesuretheproxysubmodulesareincludedintheconfigurationusingLoadModule.
缘故原由是设置:#ProxyPass/balancer://mycluster大概少了一个/
2).负载比例分派
翻开balancer-manager的界面,能够看到哀求是均匀分派的。
假如不想均匀分派怎样办?给BalancerMember加上loadfactor参数便可,取值局限为1-100。好比你有三台服务器,负载分派比例为7:2:1,只需如许设置:
Httpd.conf代码
.代码以下:
ProxyRequestsOff
<Proxybalancer://mycluster>
BalancerMemberhttp://node-a.myserver.com:8080loadfactor=7
BalancerMemberhttp://node-b.myserver.com:8080loadfactor=2
BalancerMemberhttp://node-c.myserver.com:8080loadfactor=1
</Proxy>
ProxyPass/balancer://mycluster
3).负载分派算法
默许情形下,负载平衡会只管让各个服务器承受的哀求次数满意预设的比例。假如要改动算法,可使用lbmethod属性。如:
Httpd.conf代码
.代码以下:
ProxyRequestsOff
<Proxybalancer://mycluster>
BalancerMemberhttp://node-a.myserver.com:8080loadfactor=7
BalancerMemberhttp://node-b.myserver.com:8080loadfactor=2
BalancerMemberhttp://node-c.myserver.com:8080loadfactor=1
</Proxy>
ProxyPass/balancer://mycluster
ProxySetlbmethod=bytraffic
lbmethod大概的取值有:
lbmethod=byrequests依照哀求次数平衡(默许)
lbmethod=bytraffic依照流量平衡
lbmethod=bybusyness依照忙碌水平平衡(老是分派给活泼哀求数起码的服务器)
各类算法的道理请拜见Apache的文档。
2.热备份(HotStandby)
热备份的完成很复杂,只需增加status=+H属性,就能够把某台服务器指定为备份服务器:
Httpd.conf代码
.代码以下:
ProxyRequestsOff
<Proxybalancer://mycluster>
BalancerMemberhttp://node-a.myserver.com:8080
BalancerMemberhttp://node-b.myserver.com:8080status=+H
</Proxy>
ProxyPass/balancer://mycluster
从balancer-manager界面中能够看到,哀求老是流向node-a,一旦node-a挂失落,Apache会检测到毛病并把哀求分流给node-b。Apache会每隔几分钟检测一下node-a的情况,假如node-a恢复,就持续利用node-a。
按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统: |
|