DNS负载均衡和NGINX负载均衡

负载均衡:把请求均匀的分摊到多个服务器上处理

两种负载均衡:

  • 客户端与反向代理服务器之间的DNS负载均衡
  • 服务器与反向代理服务器之间的负载均衡,可以使apache+tomcat负载均衡,也可以是ngnix负载均衡

DNS负载均衡

DNS负载均衡是通过DNS服务器实现的,主要用于把请求均匀的分布到nginx服务器上,真实情况可能是根据区域区分请求,但是一个地域中请求还是需要均匀的分配到nginx服务器上

实现原理:DNS服务器为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同你的机器上,使得不同的客户端访问不同的服务器,从而达到负载均衡目的

缺点:

  • 无法区分服务器是否挂掉,即使某个ngnix服务器挂掉,DNS仍然会分配
  • DNS缓存,用户访问网站,dns解析出来的ip一般会在客户端进行缓存。下次访问时会直接从缓存中拿,无法达到真正的均匀

Nginx负载均衡

ngnix是目前流行的、优秀的反向代理服务器,其作为反向代理服务器,主要责任是请求均匀的分摊到应用服务器中,为了达到均匀,ngnix有5种负载均衡策略

  • 轮询:请求依次轮流往每个应用服务器上进行分配

缺点:不均匀,可能会出现某些服务器接受的请求较重,负载压力大,不可控;服务器之间需要session同步

  • 权重轮询:在轮询的基础上给每个服务器一定的权重,权重大的可以多分配几个请求

优点:可控

缺点:仍需要session同步

  • IP-hash

优点:无需进行session同步,固定IP会访问固定访问一台服务器

缺点:恶意攻击,会造成某台服务器压垮;提供的服务不同,面向的地区不同,ip可能会出现集中,造成不均匀

  • fair:会根据服务器处理请求的速度进行负载均衡分配
  • URL-hash:根据URL进行hash

猜你喜欢

转载自blog.csdn.net/qq_34309704/article/details/81085681