<b>19个心得 明懂得白说Linux下的负载均衡</b>[Linux安全]
本文“<b>19个心得 明懂得白说Linux下的负载均衡</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
前言:作为一名Linux/unix系统工程师,这几年一向在触及到对外项目,经手过很多小中型网站的架构,F5、LVS及Nginx接触的都对比多,我想一种对比通俗易懂的语气跟大家阐明下何谓负载均衡,何谓Linux集群,帮忙大家走出这个误区,真正意义上来理解它们,项目施工案例请参考我在51cto.com上的同类文章.
1、目前网站架构普通分成负载均衡层、web层和数据库层,我其实普通还会多加一层,即文件服务器层,因为目前随着网站的PV越来越多,文件服务器的压力也越来越大;不过随着moosefs、DRDB+Heartbeat的日益成熟,这问题也不大了.网站最前端的负载均衡层称之为Director,它起的是分摊恳求的作用,最常见的就是轮询.
2、F5是通过硬件的方法来实现负载均衡,它较多利用于CDN系统,用于squid反向加快集群的负载均衡,是专业的硬件负载均衡设备,特别实用于每秒新建衔接数和并发衔接数要求高的场景;LVS和Nginx是通过软件的方法来实现的,但安定性也相当刁悍,在处理高并发的情形也有相当不俗的表现.
3、Nginx对网络的依靠较小,理论上只要ping得通,网页拜候正常,nginx就可以连得通,nginx同时还能区份内外网,假如是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就对比依靠于网络环境,目前来看服务器在同一网段内并且lvs利用direct方法分流,效果较能得到保证.
4、目前较成熟的负载均衡高可用技术有LVS+Keepalived、Nginx+Keepalived,从前Nginx没有成熟的双机备份筹划,但通过shell脚本监控是可以实现的,有爱好的可具体参考我在51cto上的项目实施筹划;别的,假如考虑Nginx的负载均衡高可用,也可以通过DNS轮询的方法来实现,有爱好的可以参考张宴的相关文章.
5、集群是指负载均衡背面的web集群或tomcat集群等,但目前的集群意义泛指了整个系统架构,它包含了负载均衡器以及后端的利用服务器集群等,目前很多人都喜好把Linux集群指为LVS,但我认为严峻意义上应当区脱离.
6、负载均衡高可用中的高可用指的是实现负载均衡器的HA,即一台负载均衡器坏掉后另一台可以在<1s秒内切换,最常用的软件就是Keepalived和Heatbeat,成熟的生产环境下的负载均衡器筹划有Lvs+Keepalived、Nginx+Keepalived.
7、LVS的上风非常多:①抗负载本领强;②工作安定(因为有成熟的HA筹划);③无流量;④基本上能支持全部的利用,基于以上的长处,LVS拥有不少的粉丝;但世事无绝对,LVS对网络的依靠性太大了,在网络环境相对复杂的利用场景中,我不得不放弃它而选用Nginx.
8、Nginx对网络的依靠性小,并且它的正则强盛而机动,刁悍的特点吸引了不少人,并且配置也是相当的便利和简约,小中型项目实施中我基本是考虑它的;当然,假如资金充沛,F5是不贰的挑选.
9、大型网站架构中其实可以结合利用F5、LVS或Nginx,挑选它们中的二种或三种全部挑选;假如因为预算的缘由不挑选F5,那么网站最前端的指向应当是LVS,也就是DNS的指向应为lvs均衡器,lvs的长处令它非常合适做这个任务.重要的ip地址,最好交由lvs托管,比方数据库的ip、webservice服务器的ip等等,这些ip地址随着时间推移,利用面会越来越大,假如改换ip则弊端会相继而至.所以将这些重要ip交给lvs托管是最为稳妥的.
10、VIP地址是Keepalived虚拟的一个IP,它是一个对外的公开IP,也是DNS指向的IP;所以在计划网站架构时,你必须向你的IDC多申请一个对外IP
11、在实际项目实施历程中发现,Lvs和Nginx对https的支持都非常好,特别是LVS,相对而言处理起来更为简便.
十2、在LVS+Keepalived及Nginx+Keepalived的弊端处理中,这二者都是很便利的;假如发生了系统弊端或服务器相关弊端,便可将DNS指向由它们后端的某台真实web,到达短时间处理弊端的效果,毕竟广告网站和电子商务网站的PV就是金钱,这也是为什么要将负载均衡高可用计划于此的缘由;大型的广告网站我就倡议直接上CDN系统了.
十3、目前Linux集群都被大家神话了,其实这个也没多少复杂;关键看你的利用场景,哪类实用就选用哪类,Nginx和LVS、F5都不是神话,哪类便利哪类实用就选用哪类.
十4、别的关于session同享的问题,这也是一个老生长谈的问题了;Nginx可以用ip_hash机制来办理session的问题,而F5和LVS都有会话保持机制来办理这个问题,此外,还可以将session写进数据库,这也是一个办理session同享的好办法,当然这个也会加重数据库的负担,这个看系统架构师的取舍了.
十5、我目前目前保护的电子商务网站并发大约是1000左右,从前的证券资讯类网站是100左右,大型网上广告大约是3000,我感受web层的并发越来越不是一个问题;目前由于服务器的刁悍,再加上Nginx作web的高抗并发性,web层的并发并非什么大问题;相反而言,文件服务器层和数据库层的压力是越来越大了,单NFS不大概胜任目前的工作,目前好的筹划是moosefs和DRDB+Heartbeat+NFS;而我喜好的Mysql服务器,成熟的利用筹划还是主从,假如压力过大,我不得不挑选oracle的RAC双机筹划.
十6、目前受张宴的影响,大家都去玩Nginx了(特别是作web),其实在服务器性能优异,内存充足的情形下,Apache的抗并发本领并不弱,整个网站的瓶颈应当还是在数据库方面;我倡议可以双方面理解Apache和Nginx,前端用Nginx作负载均衡,后端用Apache作web,效果也是相当的好.
十7、Heartbeat的脑裂问题没有想象中那么严重,在线上环境可以考虑利用;DRDB+Heartbeat算是成熟的利用了,倡议掌握.我在相当多的场所用此组合来替换EMC同享存储,毕竟30万的价钱并非每个客户都乐意承受的.
十8、无论计划的筹划是多么的成熟,还是倡议要配置Nagios监控机来及时监控我们的服务器情形;邮件和短信报警都可以开启,毕竟手机可以随身携带嘛;有条件的还可以购置专门的商业扫描网站服务,它会每隔一分钟扫描你的网站,假如发现没有alive会向你的邮件发告诫信息或直接电话接洽.
十9、至少网站的安全性问题,我倡议用硬件防火墙,对比举荐的是华赛三层防火墙+天泰web防火墙,DDOS的安全防护一定要到位;Linux服务器本身的iptables和SElinux都可关闭,当然,端口开放越少越好.
以上是“<b>19个心得 明懂得白说Linux下的负载均衡</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |