nginx负载均衡

负载均衡就是将负载分摊到多个操作单元上执行,从而提高服务器的可用性和响应速度,带给用户更好的体验。nginx负载均衡有四种方式:轮询,加权轮询,ip_hash,第三方模块。

轮询是nginx负载均衡默认设置的,每个请求按照时间顺序逐一分配到不同的后端服务器,如果有服务器宕机,则会剔除

 server {
	listen  81;
	server_name localhost;
	location /{
		root  html;
		index index.html index.htm;
	}
	  location /user{
		proxy_pass http://web-server;
	}
    upstream web-server{
        server  192.168.78.128;
        server  192.168.78.200;

    }
		}

它一般是通过upstream去配置,当我访问localhost:81/user时会被代理到192.168.78.128或者192.168.78.200,刷新页面这两个页面会轮流出现,加权轮询负载均衡就是在他们后面加个weight值

 server {
	listen  81;
	server_name localhost;
	location /{
		root  html;
		index index.html index.htm;
	}
	  location /user{
		proxy_pass http://web-server;
	}
    upstream web-server{
        server  192.168.78.128 weight=1 max_fails=1 fails_timeout=2;
        server  192.168.78.200 weight=3 max_fails=2 fails_timeout=2;
        server  192.168.79.155 backup;
        server  192.168.78.165 down;
    }
		}

这样每4次就会有3次是192.168.78.200,一次192.168.78.128,不过192.168.78.200也不一定是连续3次出现,是随机分配的

max_fails是允许请求失败的次数,如果超出这个次数,nginx会返回proxy_next_upstream指令定义的错误,fail_timeout是经历了max_fails次失败后暂停服务的时间,一般配合max_fails使用,backup表示这个是预留服务器,只有当其他服务器都故障时他才会被使用,还有一个参数是down,表是当前服务器暂时不参与负载均衡

接下来是ip_hash的方式

 upstream web-server{
        ip_hash;
        server  192.168.78.128 ;
        server  192.168.78.200 ;
        server  192.168.79.155 ;
        server  192.168.78.165 ;
    }

ip_hash为每个用户绑定一台服务器,可以使用down参数,但是不能使用weight和backup参数

还有一种使用第三方模块的包,可以下载fair模块或者url_hash,这里不再说明了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值