Nginx详解upstream模块详解

upstream中常用的参数

server:负载均衡后端的服务器的IP或域名,不写端口默认是80,高并发场景用域名,再通过DNS进行负载均衡

weight:后端服务器的权重,默认为1,权重越大接收的请求越多,例如:weight=5

max_fails:检查节点的健康状态并允许请求失败的次数,达到该次数将节点下线,默认为1,0表示禁止失败尝试,例如:max_fails=2

fail_timeout:max_fails失败次数达到限制后暂停该节点服务器时间,默认是10秒。

backup:热备配置,当服务池中所有的服务器出现问题后会自动上线backup服务器。

down:标志服务器不可用,不参与负载均衡,这个参数通常配合IP_HASH使用。

max_conns:限制最大连接数,通常对后端服务器硬件不一致的情况进行配置。

keepalive:限制空闲长连接的最大数量。

keepalive_timeout:空闲长连接的最长保持时间。

keepalive_requests:每个长连接最多可以处理的请求数。

upstream配置示例

upstream wp{

     server 10.158.1.10 down;

     server 10.158.1.20 backup;

      server 10.158.1.30 max_failes=3 fail_timeout=10s weight=5;

     keepalive_timeout 30s;

     keepalive_requests 100;

}

upstream负载均衡算法

轮询算法(默认算法):每个请求依次会分配给后端不同的应用程序服务器,不理会后端服务器的时机压力。

http{

    upstream wp{

        server 10.158.1.10;

        server 10.158.1.20;

        server 10.158.1.30;

   }

server {

      listen 80;

      server name www.wp.com;

        location /{

          proxy_pass http://wp;

       }

}

}

加权负载均衡:权重越大的服务器,被分配到的次数就会越多,通常用于后端服务器性能不一致的情况。

http {

     upstream  wp{

           server 10.158.1.10 weight=3;

           server 10.158.1.20 ;

   }

  server {

   listen 80;

   server name wp.com;

    localtion / { 

          proxy_pass http://wp;

    }

 }

    }

IP_HASH:当IP进行重复访问时会被指定到上次访问的服务器,可以解决动态网站session共享问题

upstream wp{

  ip_hash;

  server 10.158.1.10;

  server 10.158.1.20;

   server 10.158.1.30;
 }

基于URL的HASH 当   当客户端多次访问同一个地址时分配到固定的节点

upstream wp{

    hash $request_url;

    server 10.158.1.10;

    server 10.158.1.20;

    server 10.158.1.30;

}

最少连接数轮询:哪个节点当前的连接数少就分配给哪个节点处理

least_conn;

upstream wp{

 lease_conn;

 server 10.158.1.10;

 server 10.158.1.20;

}

proxy_pass模块常用指令

proxy_pass 指定需要反向代理的服务器地址,可以是一个upstream池

proxy_next_upstream 如果后端服务器不可用的话自动请求转发到另一台服务器,默认为on,还可以设置为timeout或者http状态码。

proxy_method 修改用户的method请求

proxy_http_version 修改用户的http协议版本

proxy_set_header  修改用户header

proxy_set_body  修改body信息

proxy_send_timeout 默认60s

proxy_connect_timeout 默认60s

server {

  listen 80;

   server name wp;

   location /{

    proxy_pass http://10.158.1.110;

     proxy_method PUT;

     proxy_http_version 1.1;

     proxy_set_header wp "wp";

  }

 }

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值