前言:作为一名Linux/unix系统工程师、项目实施工程师,这几年一直在涉及到对外项目,经手过许多小中型网站的架构,F5、LVS及Nginx接触的都比较多,我想一种比较通俗易懂的语气跟大家说明下何谓负载均衡,何谓Linux集群,帮助大家走出这个误区,真正意义上来理解它们,具体项目施工案例请参考我在network.51cto.com上的同类文章。
一、目前网站架构一般分成负载均衡层、web层和数据库层,我其实一般还会多加一层,即文件服务器层,因为现在随着网站的PV越来越多,文件服务器的压力也越来越大;不过随着moosefs、DRDB+Heartbeat+NFS的日趋成熟,这问题也不大了.网站最前端的负载均衡层称之为Director,它起的是分摊请求的作用,最常见的就是轮询。
二、F5是通过硬件的方式来实现负载均衡,它较多应用于CDN系统,用于squid反向加速集群的负载均衡,是专业的硬件负载均衡设备,尤其适用于每秒新建连接数和并发连接数要求高的场景;LVS和Nginx是通过软件的方式来实现的,但稳定性也相当强悍,在处理高并发的情况也有相当不俗的表现。
三、Nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用 direct方式分流,效果较能得到保证。
四、目前较成熟的负载均衡高可用技术有LVS+Keepalived、Nginx+Keepalived,以前 Nginx没有成熟的双机备份方案,但通过shell脚本监控是可以实现的,有兴趣的可具体参考我在51cto上的项目实施方案;另外,如果考虑 Nginx的负载均衡高可用,也可以通过DNS轮询的方式来实现,有兴趣的可以参考张宴的相关文章;但由于我们目前的商务网站要考虑googel收录及域名备案还有其它的因素,暂时只能用单域名,所以只采用了前面的方案;Nginx+keepalived在我们的机房已经稳定运行了一年半了,所以这架构我也一并介绍给大家。
五、集群是指负载均衡后面的web集群或tomcat集群等,但现在的集群意义泛指了整个系统架构,它包括了负载均衡器以及后端的应用服务器集群等,现在许多人都喜欢把Linux集群指为LVS,但我觉得严格意义上应该区分开。
六、负载均衡高可用中的高可用指的是实现负载均衡器的HA,即一台负载均衡器坏掉后另一台可以在<1s秒内切换,最常用的软件就是Keepalived和Heatbeat,成熟的生产环境下的负载均衡器方案有Lvs+Keepalived、 Nginx+Keepalived;如果能保证Heartbeat的心跳线的稳定的话,Heartbeat+DRBD也是成熟的应用,适用于NFS文件服务器或Mysql。
七、LVS的优势非常多:①抗负载能力强;②工作稳定(因为有成熟的HA方案);③无流量;④基本上能支持所有的应用,基于以上的优点,LVS拥有不少的粉丝;但世事无绝对,LVS对网络的依赖性太大了,在网络环境相对复杂的应用场景中,我不得不放弃它而选用Nginx。
八、Nginx对网络的依赖性小,而且它的正则强大而灵活,强悍的特点吸引了不少人,而且配置也是相当的方便和简约,小中型项目实施中我基本是考虑它的;当然,如果资金充足,F5是不二的选择;我到过许多CDN机房,经常能发现F5的身影。
九、大型网站架构中其实可以结合使用F5、LVS或Nginx,选择它们中的二种或三种全部选择;如果因为预算的原因不选择F5,那么网站最前端的指向应该是LVS,也就是DNS的指向应为lvs均衡器,lvs的优点令它非常适合做这个任务。重要的ip地址,最好交由lvs托管,比如数据库的ip、webservice服务器的ip等等,这些ip地址随着时间推移,使用面会越来越大,如果更换ip则故障会接踵而至。所以将这些重要ip交给lvs托管是最为稳妥的。
十、VIP地址是Keepalived虚拟的一个IP,它是一个对外的公开IP,也是DNS指向的IP;所以在设计网站架构时,你必须向你的IDC多申请一个对外IP;如果是做LVS+Keepalived的纯公网的这种架构,呵呵,那就最好是购买一个IP网段吧。
十一、在实际项目实施过程中发现,Lvs和Nginx对https的支持都非常好,尤其是LVS,相对而言处理起来更为简便。
十二、在LVS+Keepalived及Nginx+Keepalived的故障处理中,这二者都是很方便的;如果发生了系统故障或服务器相关故障,即可将DNS指向由它们后端的某台真实web,达到短期处理故障的效果,毕竟广告网站和电子商务网站的PV就是金钱,这也是为什么要将负载均衡高可用设计于此的原因;大型的广告网站我就建议直接上CDN系统算了。
十三、现在Linux集群都被大家神话了,其实这个也没多少复杂;关键看你的应用场景,哪种适用就选用哪种,Nginx和LVS、F5都不是神话,哪种方便哪种适用就选用哪种。
十四、另外关于session共享的问题,这也是一个老生长谈的问题了;Nginx可以用ip_hash机制来解决session的问题,而F5和LVS都有会话保持机制来解决这个问题,此外,还可以将session写进数据库,这也是一个解决session共享的好办法,当然这个也会加重数据库的负担,这个看系统架构师的取舍了。
十五、我现在目前维护的电子商务网站并发大约是1800左右,以前的证券资讯类网站是100左右,大型网上广告网站大约是6000,我感觉web层的并发越来越不是一个问题;现在由于服务器的强悍,再加上Nginx作web的高抗并发性,web层的并发并不是什么大问题;相反而言,文件服务器层和数据库层的压力是越来越大了,单NFS不可能胜任目前的工作,现在好的方案是moosefs和 DRDB+Heartbeat+NFS;而我喜欢的Mysql服务器,成熟的应用方案还是主从;当然我也在尝试一主多从、Master-Master-slaves等多种架构。
十六、现在受张宴的影响,大家都去玩Nginx了(尤其是作web),其实在服务器性能优异,内存足够的情况下,Apache的抗并发能力并不弱(16G内存下Apache过6000问题也不大),整个网站的瓶颈应该还是在数据库方面;我建议可以双方面了解Apache和Nginx,前端用Nginx作负载均衡,后端用Apache作web,效果也是相当的好。
十七、Heartbeat的脑裂问题没有想象中那么严重,在线上环境可以考虑使用;DRDB+Heartbeat算是成熟的应用了,建议掌握。我在相当多的场合用此组合来替代EMC共享存储,毕竟30多万的价格并不是每个客户都愿意接受的。
十八、无论设计的方案是多么的成熟,还是建议要配置Nagios监控机来实时监控我们的服务器情况;邮件和短信报警都可以开启,毕竟手机可以随身携带嘛;有条件的还可以购买专门的商业扫描网站服务,它会每隔一分钟扫描你的网站,如果发现没有alive会向你的邮件发警告信息或直接电话联系。
十九、至少网站的安全性问题,我建议用硬件防火墙,比较推荐的是华赛三层防火墙+天泰web防火墙(或单台Juniper防火墙),DDOS的安全防护一定要到位(国内的DDOS攻击让人烦躁);Linux服务器本身的iptables和SElinux均可关闭,当然,端口开放越少越好。
二十、测试网站的响应时间是用http://tools.pingdom.com,发现上了LVS+Keepalived、Nginx+Keepalived后并不影响速度,这一点大家就不要多虑了,Nginx现在作反向加速也日趋成熟了,大家也可尝试下用Nginx来取代squid。
本文出自 “抚琴煮酒” 博客,请务必保留此出处http://andrewyu.blog.51cto.com/1604432/500208
分享到:
相关推荐
Linux 集群具备高可靠性、高速运算速度和灵活的扩展性等优点,广泛应用于科学计算、数据分析、云计算等领域。 Linux 集群的优点 1. 可靠性好:Linux 操作系统具备高可靠性的特点,能够长时间不间断地运行,保证...
Linux集群的构建与维护(Linux集群的一本好书) Linux集群的构建与维护(Linux集群的一本好书) Linux集群的构建与维护(Linux集群的一本好书)
在本经典资料中,我们将深入探讨Linux集群的构建、管理和优化,以及相关的分布式系统开发。 首先,我们要理解Linux集群的基本概念。Linux集群由多台计算机(节点)组成,这些节点通过高速网络互连,并通过特定的...
Linux企业集群是利用Linux操作系统构建的,用于处理大规模数据和高并发请求的集群系统。集群技术可以使多个计算机协同工作,作为一个整体提供服务,从而提高系统的可用性、扩展性和计算性能。企业集群在Linux下的...
linux集群部署文档,技术分享及具体操作步骤,内容比较齐全。
在《Linux集群环境中高可用性实施和测试.doc》中,可能会涵盖如何通过冗余硬件、故障转移和监控工具来确保集群的HA特性。 3. **数据库集群**: 数据库集群是数据库管理系统的一种形式,它将数据分布在多台服务器上...
ZooKeeper Linux 集群搭建流程可以分为四步:下载和解压 ZooKeeper、创建目录和 myid 文件、修改 ZooKeeper 启动配置文件、启动 ZooKeeper 节点。通过这些步骤,可以成功搭建 ZooKeeper Linux 集群,满足分布式系统...
linux集群技术详解,防火墙集群,交换机、路由器集群,服务器集群
【Linux系统-Linux中安装JDK/TOMCAT/MYSQL/Linux中项目部署/集群搭建】 在Linux环境下进行Java应用开发和部署,通常需要安装Java开发工具包(JDK)、Web服务器(TOMCAT)以及数据库管理系统(MYSQL)。以下是针对这些组件...
高性能的linux集群,通俗易懂的讲解集群,并实践集群,简单易懂
Linux集群技术可以实现高可用性、负载均衡和超级计算等功能,满足现代网络服务的需求。 1. 高可用性集群 高可用性集群的主要功能就是提供7×24小时不间断服务,有很多应用程序都必须一天24小时不停运转,如工业...
Linux集群是一种将多台计算机通过高速网络连接,协同工作,以提供高可用性、高可扩展性和负载均衡的系统。这种集群技术在操作系统领域,尤其是Linux环境下,有着广泛的应用。Linux因其开源、稳定且成本效益高的特点...
测试了确实是正版25000的主控和Linux小马当然也带后门 生成器上面带的后门域名无法直接去掉 通过运行内存补丁生成小马可以直接0填充掉后门地址 SS无法查到连接,域名解析到127.0.0.1的 只有等到解析到IP地址的时候...
【双机Linux集群服务器的实现】是指在Linux操作系统环境下,通过特定的技术手段,构建两台服务器组成的集群系统,以提供高可用性和负载均衡的服务。这种技术尤其适用于对服务连续性和性能有较高要求,但预算有限的...
本文档详细介绍了 Linux 集群配置的过程,包括 RHCS 的安装、配置、Fence 机制的讲解和 RHCS 与 Oracle 的集成配置。下面是从文档中提取的相关知识点: 一、RHCS 的安装 RHCS(Red Hat Cluster Suite)可以通过三...
Materials Studio Linux 集群安装手册 本文档提供了 Materials Studio Linux 集群安装的详细指导,涵盖从安装 Linux 操作系统到配置集群的...遵循本文档的指导,可以轻松地安装和配置 Materials Studio Linux 集群。
现在很多的企业,网站都在应用Linux操作系统,Linux的优点使人们舍弃了微软。今天就讲讲Linux集群技术,让你更一步了解Linux,知道Linux集群技术强大功能。给你挑选系统起到参考的作用。
在Linux集群配置中,有多个关键的守护进程负责监控和维护集群的稳定运行。本手册将详细介绍这些守护进程及其配置。 1. **cluquorumd**:仲裁守护进程,主要任务是在两节点集群中,通过在主共享分区和备份分区上写入...
【基于IP网络的Linux集群系统备份、恢复模型】 ...在未来的系统开发和运维实践中,这种模型可以作为一个重要的参考,帮助优化集群系统的备份策略,降低因系统故障导致的数据丢失风险,从而确保企业的核心业务稳定运行。
文章首先分析了高校校园网的需求和主要问题,然后介绍了 Linux 集群技术和负载均衡技术在高校校园网服务器平台构建中的应用。最后,文章还详细介绍了基于 Linux 的 LVS 技术在高校校园网服务器平台构建中的应用和...