Nginx的负载均衡

作者: 最不闪亮的那颗星 | 来源:发表于2017-11-23 20:44 被阅读0次

    一、背景介绍

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

    二、知识剖析

    Nginx常用功能,作为web服务器尤其是反向代理,负载均衡,动静分离。

    (1)

    重点来说一下什么是负载均衡:我们知道单台服务器的性能是有上限的,当流量很大时,就需要使用多台服务器来共同提供服务,这就是所谓的集群。

    负载均衡服务器,就是用来把经过它的流量,按照某种方法,分配到集群中的各台服务器上。这样一来不仅可以承担

    更大的流量、降低服务的延迟,还可以避免单点故障造成服务不可用。一般的反向代理服务器,都具备负载均衡的功能。

    (2)

    此时使用的HTTP反向代理模块是ngx_http_proxy_module。

    一般在upstream配置块中要指明使用的负载均衡算法,比如hash、ip_hash、least_conn。

    这里没有指定,所以使用了默认的HTTP负载均衡算法 - 加权轮询。

    三、

    nginx 的 upstream目前支持 4 种方式的分配

    1)、轮询(默认)

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

    2)、weight

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

    2)、ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    3)、fair(第三方)

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

    4)、url_hash(第三方)

    四:

    http {

    upstream cluster {

    server srv1 down;

    server srv2 weight=2;

    server srv3;

    server srv3 backup;

    }

    server {

    listen 80;

    location / {

    proxy_pass http://cluster;

    }

    }

    }

    upstream 每个设备的状态:

    down 表示单前的server暂时不参与负载

    weight  默认为1.weight越大,负载的权重就越大。

    max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

    fail_timeout:max_fails 次失败后,暂停的时间。

    backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

    IT修真院

    “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

    这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !

    师兄带你入门!

    PPT

    相关文章

      网友评论

        本文标题:Nginx的负载均衡

        本文链接:https://www.haomeiwen.com/subject/jwjtbxtx.html