Nginx负载均衡策略配置方式,轮询策略,最少连接策略,IpHash策略的配置及调用全过程详解

引言

在官方文档中可以看到Nginx负载均衡是通过upstream模块来实现的,内置实现了三种负载策略:轮询,最少连接,IpHash,可以满足常用场景,优化nginx反向代理,其中还涉及到一个重要参数weight,用于给对应服务加权,数字越高执行概率越大。在查阅资料时还看到了通过第三方实现的两种策略(fair、url_hash)本文中暂不讨论。

实现方式

下面举几个例子看一下具体配置方式,注意upstream模块要配置在server外面,一般配置在跟server同级的上方,server调用我会统一写在最后,可以复制使用。

轮询策略

	upstream pollServer {
        #本地服务
        server 127.0.0.1:8080 		weight=5;
        #远程服务
        server 192.168.50.1:8080    weight=1;
        server 192.168.50.2:8080    weight=6;
        # 权重值越大执行概率越高
    }

最少连接策略

	upstream leastServer {
		#策略配置关键字
		least_conn;
        #本地服务
        server 127.0.0.1:8080;
        #远程服务
        server 192.168.50.1:8080;
        server 192.168.50.2:8080;
    }

IP_Hash策略

	upstream hashServer {
		#根据ip保持同一用户始终处于同一节点
		hash $request_uri consistent
		#策略配置关键字
		ip_hash;
        #本地服务
        server 127.0.0.1:8080;
        #远程服务
        server 192.168.50.1:8080;
        server 192.168.50.2:8080;
    }

IP_Hash策略有一个比较常见的坑,所有经过反向代理的请求ip都会变成本机ip,需要在http层内,server层同级加入这一句代码以便获取客户端真实IPproxy_set_header X-Real-IP $remote_addr;

最后就是从请求进来这个服务到三种策略调用的过程和解析:
写一个server

	server {
        #侦听www.test.com的80端口
        listen       80;
        server_name  www.test.com;
        
        # 拦截www.test.com/poll/*的请求
        location /poll/ {
        access_log logs/poll.log;# 日志记录
        # include /usr/local/nginx/conf/conf.d/*.conf;#引入其他配置
        # 代理到pollServer轮询策略
        proxy_pass http://pollServer/;
    	}
    	
    	# 拦截www.test.com/least/*的请求
    	location /least/ {
        access_log logs/least.log;
        # 代理到leastServer轮询策略
        proxy_pass http://leastServer/;
    	}
    	
    	# 拦截www.test.com/hash/*的请求
    	location /hash/ {
        access_log logs/hash.log;
        # 代理到hashServer轮询策略
        proxy_pass http://hashServer/;
    	}
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿韩想静静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值