防止请求发送到错误的地址而收到错误的返回
一.upstream_ip_hash模块(基于用户的IP地址来进行hash算法)
模块:ngx_http_upstream_ip_hash_module,默认编译进nginx,通过--with-http_upstream_ip_hash_module禁用
功能:以客户端的IP地址作为hash算法的关键字,映射到特定的上游服务器中。
对IPV4地址使用前3个直接作为关键字,对IPV6则使用完整地址
可以基于realip模块修改用于执行算法的IP地址
1.ip_hash指令
语法:ip_hash;
默认:空
放置位置:upstream
二.upstream_hash模块(基于任意的参数或者变量进行hash算法)【一致性哈希算法】
解决当服务器挂掉或者扩容所带来的缓存大量失效问题
模块:ngx_http_upstream_hash_moudle,默认编译进nginx,通过--without-http_upstream_ip_hash_module禁用
功能:通过指定关键字作为hash key,基于hash算法映射到特定的上游服务器中。
关键字可以含有变量,字符串
1.hash key 指令
语法:hash key [consistent];【当使用一致性hash算法时,需要配置consistent】
默认:空
放置位置:upstream
三.upstream_least_conn模块(优先选择连接最少的上游服务器)
模块:ngx_http_upstream_least_conn_module,默认编译进nginx,通过--without-http_upstream_ip_hash_module禁用模块
功能:从所有上游服务器中,找出当期并发连接数最少的一个,将请求转发到它。
如果出现多个最少连接服务器的连接数都是一样的,使用round-robin算法
1.least_conn指令
语法:least_conn
默认:空
放置位置:upstream

1679

被折叠的 条评论
为什么被折叠?



