• 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";
      }
     }
  • 相关阅读:
    websocket初体验(能传文字和图片)
    展开折叠效果 height未知 transition无效
    微信小程序自定义键盘
    微信小程序 selectComponent 值为null
    css 斜线 animation
    【转】怎样在ubuntu12.04下创建一个启动器
    以ontouch为例说明android事件发送机制
    谈谈移动应用设计——从一个普通开发者的角度
    Launch error: Failed to connect to remote VM. Connection refused.的解决办法
    Beyond compare代码比较工具。
  • 原文地址:https://www.cnblogs.com/networking/p/13644187.html
Copyright © 2020-2023  润新知