当前位置:首页 > 教程 > 正文内容

nginx负载均衡性能(nginx负载均衡算法8种)

2023-04-11 22:40:05教程1

nginx负载均衡算法8种

通过设置特定的策略,使nginx将请求按策略分配到不同的后端服务器 一般可以使用IP分流、服务器压力分流等方法 IP分流可以将请求来源IP在某个范围内的请求传递给相同的后端 服务器压力分流可以根据后端服务器压力的不同,而分配给后端压力相对较小的后端服务器

nginx 负载均衡原理

upstream 通过扩展健康检测插件可以剔除挂掉的服务实例,让其不参与负载均衡

nginx 负载均衡算法

nginx 负载均衡的几种常用方式

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3、ip_hash

上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个(对应的)后端服务器,后端服务器为缓存时比较有效。

nginx负载均衡原理3种

早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求。随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能的集群来应对。负载均衡方案的三种实现策略:

 

  一、多台服务器是如何去均衡流量、如何组成高性能的集群的呢?

  负载均衡(Load Balancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载的效果。负载均衡技术提高了系统的服务能力,增强了应用的可用性。

  二、负载均衡方案有几种?

  目前市面上最常见的负载均衡技术方案主要有三种:

  1、基于DNS负载均衡

  2、基于硬件负载均衡

  3、基于软件负载均衡

  三种方案各有优劣,DNS负载均衡可以实现在地域上的流量均衡,硬件负载均衡主要用于大型服务器集群中的负载需求,而软件负载均衡大多是基于机器层面的流量均衡。在实际场景中,这三种是可以组合在一起使用。下面来详细讲讲:

  三、基于DNS负载均衡

  1、基于DNS来做负载均衡其实是一种最简单的实现方案,通过在DNS服务器上做一个简单配置即可

  其原理就是当用户访问域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候我们可以让DNS服务器根据不同地理位置的用户返回不同的IP。比如南方的用户就返回我们在广州业务服务器的IP,北方的用户来访问的话,我就返回北京业务服务器所在的IP。

  在这个模式下,用户就相当于实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力,也提升了用户的访问速度。

  使用DNS做负载均衡的方案,天然的优势就是配置简单,实现成本非常低,无需额外的开发和维护工作。

  但是也有一个明显的缺点是:当配置修改后,生效不及时。这个是由于DNS的特性导致的,DNS一般会有多级缓存,所以当我们修改了DNS配置之后,由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。

  另外,使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在。

  2、基于硬件负载均衡

  硬件的负载均衡那就比较牛逼了,比如大名鼎鼎的F5 Network Big-IP,也就是我们常说的F5,它是一个网络设备,你可以简单的理解成类似于网络交换机的东西,完全通过硬件来抗压力,性能是非常的好,每秒能处理的请求数达到百万级,即 几百万/秒 的负载,当然价格也就非常非常贵了,十几万到上百万人民币都有。

  因为这类设备一般用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去使用。一般的中小公司是不舍得用的。

  采用F5这类硬件做负载均衡的话,主要就是省心省事,买一台就搞定,性能强大,一般的业务不在话下。而且在负载均衡的算法方面还支持很多灵活的策略,同时还具有一些防火墙等安全功能。但是缺点也很明显,一个字:贵。

  3.基于软件负载均衡

  软件负载均衡是指使用软件的方式来分发和均衡流量。软件负载均衡,分为7层协议 和 4层协议。

  网络协议有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如LVS,而基于第七层应用层来做流量分发的称为7层负载均衡,例如Nginx。这两种在性能和灵活性上是有些区别的。

  基于4层的负载均衡性能要高一些,一般能达到 几十万/秒 的处理量,而基于7层的负载均衡处理量一般只在 几万/秒 。

  基于软件的负载均衡的特点也很明显,便宜。在正常的服务器上部署即可,无需额外采购,就是投入一点技术去优化优化即可,因此这种方式是互联网公司中用得最多的一种方式。

nginx负载均衡中常见的算法

NGINX负载均衡404错误处理方法

使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器

upstream image.stream.com {

server 192.168.1.25:8088;

server 192.168.1.24:8088;

server 192.168.1.23:8088;

}

用户访问图片的时候,就有60% 的几率显示为找不到文件.

问题:

怎么配置成以下功能:

1.连接图片服务器时,如果说浏览的机器在24,23没有,默认又选择回另外一台25呢?解决办法:proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98773261.html