Nginx负载均衡4种方案

1、轮询

轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
配置的例子如下:
http{
    upstream sampleapp {
        server <<dns entry or IP Address(optional with port)>>;
        server <<another dns entry or IP Address(optional with port)>>;
    }
    ....
    server{
       listen 80;
       ...
       location / {
          proxy_pass http://sampleapp;
       } 
    }
上面只有1个DNS入口被插入到upstream节,即sampleapp,同样也在后面的proxy_pass节重新提到。

2、最少连接

Web请求会被转发到连接数最少的服务器上。
配置的例子如下:
http{
    upstream sampleapp {
        least_conn;
        server <<dns entry or IP Address(optional with port)>>;
        server <<another dns entry or IP Address(optional with port)>>;
    }
    ....
    server{
       listen 80;
       ...
       location / {
          proxy_pass http://sampleapp;
       } 
    }
上面的例子只是在upstream节添加了least_conn配置。其它的配置同轮询配置。

3、IP地址hars

前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,
因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。
要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。
这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
配置的例子如下:
http{
    upstream sampleapp {
        ip_hash;
        server <<dns entry or IP Address(optional with port)>>;
        server <<another dns entry or IP Address(optional with port)>>;
    }
    ....
    server{
       listen 80;
       ...
       location / {
          proxy_pass http://sampleapp;
       } 
    }
上面的例子只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。

4、基于权重的负载均衡

基于权重的负载均衡即Weighted Load Balancing,这种方式下,
我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
配置的例子如下:
http{
    upstream sampleapp {
        server <<dns entry or IP Address(optional with port)>> weight=2;
        server <<another dns entry or IP Address(optional with port)>>;
    }
    ....
    server{
       listen 80;
       ...
       location / {
          proxy_pass http://sampleapp;
       }
  }
上面的例子在服务器地址和端口后weight=2的配置,
这意味着,每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。
还要说明一点,基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。

时间: 2024-08-29 10:58:34

Nginx负载均衡4种方案的相关文章

【转】nginx 负载均衡 5种方式

nginx 负载均衡 5种方式 原文链接 http://my.oschina.net/u/217063/blog/68842 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.  例如:  upstream bakend {  server 192.168.0.14 weight=10;  server 192.168.0.15 weight=10; 

nginx 负载均衡5种方式及其服务器几种状态

轮询 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. uptream backend{ server 192.168.200.156:8080; server 192.168.200.157:8080; server 192.168.200.158:8080; } ip_hash nginx中的ip_hash技术能够将某个ip的请求定向到固定的后端服务器,这样客户端的 ip能够建立起稳定的会话(session) upstream backend{ ip_ha

nginx 负载均衡5种配置方式

博主原文地址:https://blog.csdn.net/harris135/article/details/78593405 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.  例如:  upstream bakend {  server 192.168.0.14 weight=10;  server 192.168.0.15 weight=10;

nginx负载均衡实现tomcat集群方案简要小结

重点两部分:一.负载均衡二.tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问. nginx是一个常用的反向代理服务,可自定义模块,实现请求转发及负载均衡(根具体采用策略有关).为了tomcat集群的高可用性,还需要实现nginx的双机热备.  一,如果仅是对外提供一个页面访问,不用区分单一用户(不区分每个访问session,不涉及用户权限,用户资料等内容),仅仅配置nginx负载均衡策略即可. ng

lvs、haproxy、nginx 负载均衡的比较分析

lvs.haproxy.nginx 负载均衡的比较分析 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了F5硬件设备的60%性能,其他几个10%都有点困难. 不过就因为LVS忒牛了,配置也最麻烦了,而且健康检测需要另外配置Ldirector,其他HAPROXY和NGINX自己就用,而且配置超级简单. 所以小D建议,如果网站访问量不是门户级别的用HAPROXY或者NGINX就OK了,到了门户级别在用LVS+Idirector吧 哈哈 lvs和nginx都可以

解析Nginx负载均衡

摘要:对于一个大型网站来说,负载均衡是永恒的话题.随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP.Citrix NetScaler.Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选.nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注.本文将以工业生产为背景,从设计实现和具体应用等方面详细介绍nginx负载均衡策略. 关键字:nginx 负载均衡

解析 Nginx 负载均衡

nginx的负载均衡策略可以划分为两大类:内置策略和扩展策略.内置策略包含加权轮询和ip hash,在默认情况下这两种策略会编译进nginx内核,只需在nginx配置中指明参数即可.扩展策略有很多,如fair.通用hash.consistent hash等,默认不编译进nginx内核.由于在nginx版本升级中负载均衡的代码没有本质性的变化,因此下面将以nginx1.0.15稳定版为例,从源码角度分析各个策略. 2.1.           加权轮询(weighted round robin)

[转]Nginx负载均衡原理初解

什么是负载均衡 我们知道单台服务器的性能是有上限的,当流量很大时,就需要使用多台服务器来共同提供服务,这就是所谓的集群. 负载均衡服务器,就是用来把经过它的流量,按照某种方法,分配到集群中的各台服务器上.这样一来不仅可以承担 更大的流量.降低服务的延迟,还可以避免单点故障造成服务不可用.一般的反向代理服务器,都具备负载均衡的功能. 负载均衡功能可以由硬件来提供,比如以前的F5设备.也可以由软件来提供,LVS可以提供四层的负载均衡(利用IP和端口), Haproxy和Nginx可以提供七层的负载均

企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router Redundancy Pro