来谈谈:Apache负载平衡设置办法 mod_proxy利用先容
不同版本的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代码
.代码以下:
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系统: 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? 不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。 我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。 如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。 掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。 下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。 期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
页:
[1]