Nginx反向代理实现均衡负载及调度算法

本文介绍Nginx通过ngx_http_upstream_module模块实现负载均衡的方法,包括定义服务器组、多种调度算法(如wrr、ip_hash、least_conn等),以及一致性hash算法的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx反向代理实现均衡负载及调度算法
ngx_http_upstream_module
ngx_http_upstream_module模块
	将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用
upstream name { ... }
	定义后端服务器组,会引入一个新的上下文
	默认调度算法是wrr
	Context: http
	upstream httpdsrvs {
		server ...
		server...
		...
	}
server address [parameters];
	在upstream上下文中server成员,以及相关的参数;Context:upstream
	address的表示格式:
		unix:/PATH/TO/SOME_SOCK_FILE
		IP[:PORT]
		HOSTNAME[:PORT]
	parameters:
		weight=number 权重,默认为1
		max_conns 连接后端报务器最大并发活动连接数,1.11.5后支持
		max_fails=number 失败尝试最大次数;超出此处指定的次数时,server将被标记为不可用,默认为1
		fail_timeout=time 后端服务器标记为不可用状态的连接超时时长,默认10s
		backup 将服务器标记为“备用”,即所有服务器均不可用时才启用
		down 标记为“不可用”,实现灰度发布
ip_hash 源地址hash调度方法
least_conn 最少连接调度算法,当server拥有不同的权重时其为wlc, 当所有后端主机连接数相同时,则使用wrr,适用于长连接
hash key [consistent] 基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者组合
	作用:将请求分类,同一类请求将发往同一个upstream server,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用
	hash $request_uri consistent;
	hash $remote_addr;
	hash $cookie_name; #key为name的cookie
keepalive 连接数N;
	为每个worker进程保留的空闲的长连接数量,可节约nginx端口,并减少连接管理的消耗
一致性hash算法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值