美文网首页
nginx 反向代理实现负载均衡

nginx 反向代理实现负载均衡

作者: 青缘1990 | 来源:发表于2019-05-28 17:44 被阅读0次

    docker 快速安装nginx 

     设置需要代理的从服务器信息  可填多个 

      本机nginx配置  /etc/nginx/conf.d/nginx.conf

    请求转发到 upstream cluster 分发  

    upstream模块相关说明

    upstream模块应放于nginx.conf配置的http{}标签内

    upstream模块默认算法是wrr (权重轮询 weighted round-robin)

    一、分配方式

    Nginx的upstream支持5种分配方式,下面将会详细介绍,其中前三种为Nginx原生支持的分配方式,后两种为第三方支持的分配方式。

    1. 轮询

    轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端服务器down掉后,能自动剔除。

    upstream backend {

        server 192.168.1.101:8888;

        server 192.168.1.102:8888;

        server 192.168.1.103:8888;

    }

    2. weight权重

    轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的场景下。

    upstream backend {

        server 192.168.1.101 weight=1;

        server 192.168.1.102 weight=2;

        server 192.168.1.103 weight=3;

    }

    3. ip_hash

    每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。

    upstream backend {

        ip_hash;

        server 192.168.1.101:7777;

        server 192.168.1.102:8888;

        server 192.168.1.103:9999;

    }

    注意:

    当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。

    导致负载不均衡。

    4. fair

    fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。如果需要使用这种调度算法,必须下载Nginx的upstr_fair模块。

    upstream backend {

        server 192.168.1.101;

        server 192.168.1.102;

        server 192.168.1.103;

        fair;

    }

    5. url_hash

    目前用consistent_hash替代url_hash

    与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

    upstream backend {    server 192.168.1.101;    server 192.168.1.102;    server 192.168.1.103;hash$request_uri;    hash_method crc32;}

    其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数。

    提示:url_hash用途cache服务业务,memcached,squid,varnish。特点:每个rs都是不同的。

    相关文章

      网友评论

          本文标题:nginx 反向代理实现负载均衡

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