我们不但可以亡羊补牢
更擅长未雨绸缪

关注我们

您的位置: 主页 > 支持与下载 > IT外包资讯 >
IT外包资讯

网站用户访问逐渐变大,如何增加服务器承载能力?
时间:2018-02-11 作者:xnit 点击:

对于用户数较多、负载较大的网站,通常都会使用负载均衡(LB:Load Balance)来增加服务器的承载能力。负载均衡是云计算的一个基本服务组件,通常都会搭配云主机来构建云服务,比如阿里云的SLB(Server Load Balancer)、腾讯云的CLB(Cloud Load Balancer)。

 

负载均衡可以将客户端请求分摊到多个操作单元上进行处理

 

负载均衡有很多种不同的实现方式,从实现方式看,可以分为硬件负载均衡与软件负载均衡两大类。

 

硬件负载均衡有大名鼎鼎的F5之类,这种不差钱的企业会采用。但是现在互联网公司用的越来越少。现在硬件使用较多的是使用支持OSPF协议的交换机(基本都支持了),通过ECMP做的负载均衡集群。这个查查云计算厂商的负载均衡文档,大部分都是用这个作为分发集群的。性能非常好(随便几十G器),稳定性也很高。但硬件负载均衡解决方案也有缺点,比如设备和服务费用昂贵,灵活性差,功能和容量都难以扩展。软件负载均衡相对来说,灵活性强,扩展起来更容易,所以软件负载均衡解决方案越来越受到青睐。

 

 

 

那么小诺说到软件负载均衡,最早通过DNS来实现,即一个域名对应多个IP地址。在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

null

 

DNS负载均衡的解决方案原理比较简单,不过缺点也比较明显:

 

第一,不能够按照Web服务器的处理能力分配负载;

第二,DNS负载均衡技术没有考虑容错,即使某个服务器不可用,DNS仍然会把请求转发过去;

第三,一旦发现某个服务器出现故障,即使及时修改了DNS设置,但还是要等DNS刷新时间到了才能生效。

开源软件解决方案

 

后来出现了开源软件负载均衡的解决方案,最主流的就是LVS和Nginx。基于开源软件的负载均衡打破了硬件LB的垄断,降低了负载均衡的实施成本。

 

(1)LVS = Linux Virtual Server(IP隧道)

 

LVS虚拟服务器,在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

 

LVS是把负载均衡的功能做到了Linux内核里面。LVS集群采用IP负载均衡技术和基于内容请求分发技术,将一组服务器构成一个高性能的、高可用的虚拟服务器。

 

整个服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样,而且无需修改客户端和服务器端的程序。

 

(2)Nginx

 

Nginx是一个轻量级的Web服务器,同时也是一个反向代理服务器,可以利用其反向代理的功能做负载均衡。Nginx与LVS相比主要有以下几点不同:

 

与LVS在层四进行负载均衡不同,Nginx是在层7进行,可以针对Http应用进行分流;

转发策略也更灵活,比如可以针对域名或目录结构进行转发;

Nginx对网络的依赖比较小,理论上只要Ping得通,网页访问正常就能连通,而LVS比较依赖网络环境。

总的来说,Nginx的应用场合要更多一些,LVS则更适合节点比较多的大型系统。

 

基于云的负载均衡(Cloud Load Balance)

 

除了在云主机上自己利用LVS或Nginx搭建负载均衡服务器,阿里云、腾讯云等云计算服务商,均提供了专门的负载均衡服务,配置容易。这些服务商的负载均衡解决方案,往往是结合了层7与层4的综合负载均衡方案,而且还需要考虑VPC网络与物理网络的不同情况。

 

以上是小诺所分享的负载均衡知识,相关的还有HTTP重定向、反向代理负载均衡、IP负载均衡等等,欢迎大家讨论!