---

backup  将服务器标记为备份服务器。当主服务器不可用时,将使用该服务器。

down  将服务器标记为永久不可用

fail_timeout=time  在指定次数的不成功尝试与服务器通信的时间范围内,应考虑服务器不可用

max_conns=number  限制代理服务器的同时活动连接的最大数量。默认值为零,表示没有限制

max_fails=number  设置与服务器通信失败的最大尝试次数

weight=number  设置服务器的权重,默认情况下为1



---负载均衡的常见平衡机制

1 轮询(round-robin) :以轮询方式将请求分配到不同服务器上,每个请求按时间顺序逐一分配到不同的后端服务器, 如果后端服务器挂掉,自动剔除,保证正常的服务。

配置1:

upstream server_back {  #nginx分发服务请求

    server 192.168.162.49;

    server 192.168.162.50;

}

配置2:

http {

    upstream servergroup {  # 服务组接受请求,nginx轮询分发服务请求

        server srv1.demo.com;

        server srv2.demo.com;

        server srv3.demo.com;

    } 

    server {

        listen 80;

        location / {

            proxy_pass http://servergroup; #所有的请求被代理到servergroup服务组

        }

    }

}

 proxy_pass  后面是被代理的服务器ip,也可以是主机名,域名,ip端口模式

 upstream    设定负载均衡后台服务器列表

2 权重负载均衡(weight):如果没有配置权重,每个服务器的负载都是一样的,当出现服务器性能不均时,采用 权重轮询,指定的服务器的权重参数,权重占比为负载均衡决定的一部分。权重大负载就大。

upstream server_back { 

    server 192.168.162.49 weight=3;

    server 192.168.162.50 weight=7;

}

3 最少连接数(least-connected):将下一个请求分配到连接数最少的那台服务器上,当一些请求需要更长的时 间响应, 最少连接可以更公平地控制应用程序实例的负载。nginx会将请求转发到负载较少的服务器。

upstream servergroup { 

        least_conn;

        server srv1.demo.com;

        server srv2.demo.com;

        server srv3.demo.com;

    }

4 ip-hash :基于客户端的IP地址。原因时负载均衡每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样明显不太妥。采用ip_hash解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。

每个请求按照IP hash的结果分配,因此请求被固定到某一个后端服务器,也可以解决session问题

upstream servergroup { 

        ip-hash;

        server srv1.demo.com;

        server srv2.demo.com;

        server srv3.demo.com;

    }

附上一个实例:

#user  nobody;

worker_processes  4;

events {

    # 最大并发数

    worker_connections  1024;

}

http{

    # 待选服务器列表

    upstream myserver{

        # ip_hash指令,将同一用户引入同一服务器。

        ip_hash;

        server 125.219.42.4 fail_timeout=60s; #max_fails失败后暂定时间60s

        server 172.31.2.183;

        }

    server{

                # 监听端口

                listen 80;

                # 根目录下

                location / {

                    # 选择哪个服务器列表

                    proxy_pass http://myserver;

                }

            }

}

max_fails  允许请求失败的次数默认为1

fail_timeout=60s  fail_timeout=60s失败暂停的时间 

down 表示当前的服务器暂时不参与负载 

backup  所有非backup机器忙的时候会请求backup,因此其压力会最轻。


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回