Nginx负载均衡策略

 

一、轮询

负载均衡默认策略为轮询

upstream test{
        server 192.168.1.173:8080 ;
        server 192.168.1.174:8080 ;
        server 192.168.1.175:8080 ;
}

 

二、权重

upstream test{
        server 192.168.1.173:8080 weight=1 ;
        server 192.168.1.174:8080 weight=2;
        server 192.168.1.175:8080 weight=2;
}

三、 一致性ip_hash

ip_hash 可以保证用户访问可以请求到上游服务中的固定的服务器,前提是用户ip没有发生更改。
使用ip_hash的注意点:
不能把后台服务器直接移除,只能标记down.

If one of the servers needs to be temporarily removed, it should be marked with the down parameter in order to preserve the current hashing of client IP addresses.

upstream tomcats {
        ip_hash;

        server 192.168.1.173:8080;
        server 192.168.1.174:8080 down;
        server 192.168.1.175:8080;
}

参考:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#ip_hash

四、url_hash

根据每次请求的url地址,hash后访问到固定的服务器节点。

upstream test{
    # url hash
    hash $request_uri;
   
 # 最少连接数
    # least_conn
    server 192.168.1.173:8080;
    server 192.168.1.174:8080;
    server 192.168.1.175:8080;
}


server {
    listen 80;
    server_name www.test.com;

    location / {
        proxy_pass  http://test;
    }
}

五、最少连接数

upstream test{
   
    # 最少连接数
    least_conn;
    server 192.168.1.173:8080;
    server 192.168.1.174:8080;
    server 192.168.1.175:8080;
}


server {
    listen 80;
    server_name www.test.com;

    location / {
        proxy_pass  http://test;
    }
}

 

 

六、 max_conns

限制每台server的连接数,用于保护避免过载,可起到限流作用。
测试参考配置如下:

# worker进程设置1个,便于测试观察成功的连接数
worker_processes  1;

upstream tomcats {
        server 192.168.1.173:8080 max_conns=2;
        server 192.168.1.174:8080 max_conns=2;
        server 192.168.1.175:8080 max_conns=2;
}

七、slow_start

商业版,需要付费
配置参考如下:

upstream test{
        server 192.168.1.173:8080 weight=6 slow_start=60s;
#       server 192.168.1.190:8080;
        server 192.168.1.174:8080 weight=2;
        server 192.168.1.175:8080 weight=2;
}

注意

  • 该参数不能使用在hashrandom load balancing中。
  • 如果在 upstream 中只有一台 server,则该参数失效。

八、指令参数 down、backup

down 用于标记服务节点不可用:

upstream test{
        server 192.168.1.173:8080 down;
#       server 192.168.1.190:8080;
        server 192.168.1.174:8080 weight=1;
        server 192.168.1.175:8080 weight=1;
}

backup表示当前服务器节点是备用机,只有在其他的服务器都宕机以后,自己才会加入到集群中,被用户访问到:

upstream test{
        server 192.168.1.173:8080 backup;
#       server 192.168.1.190:8080;
        server 192.168.1.174:8080 weight=1;
        server 192.168.1.175:8080 weight=1;
}

注意

  • backup参数不能使用在hashrandom load balancing中。

九、指令参数 max_fails、fail_timeout

max_fails:表示失败几次,则标记server已宕机,剔出上游服务。
fail_timeout:表示失败的重试时间。
假设目前设置如下:

max_fails=2 fail_timeout=15s 

则代表在15秒内请求某一server失败达到2次后,则认为该server已经挂了或者宕机了,随后再过15秒,这15秒内不会有新的请求到达刚刚挂掉的节点上,而是会请求到正常运作的server,15秒后会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。

 

十、Keepalived 提高吞吐量

keepalived: 设置长连接处理的数量
proxy_http_version:设置长连接http版本为1.1
proxy_set_header:清除connection header 信息

upstream test{
#       server 192.168.1.173:8080 max_fails=2 fail_timeout=1s;
        server 192.168.1.190:8080;
#       server 192.168.1.174:8080 weight=1;
#       server 192.168.1.175:8080 weight=1;
        keepalive 32;
}

server {
        listen       80;
        server_name  www.test.com;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值