请问 一下nginx 负载均衡策略配置ip_hash会自动剔除 宕机的服务器吗

阿飞云漫步
JAVA领域优质创作者
博客专家认证
2017-12-25 09:32:43
请问 一下nginx 负载均衡配置ip_hash会自动剔除 宕机的服务器吗?
upstream按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能 自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。

想问一下使用Ip_hash ,是否可以自动删除宕机的服务器,
...全文
6102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小子190529 2019-11-18
  • 打赏
  • 举报
回复
这种方式不会的,这就是这种方式的其中一个缺点
高防-杨 2019-08-28
  • 打赏
  • 举报
回复
zgycsmb 2019-06-26
  • 打赏
  • 举报
回复
你环境正常吗,不会自动剔除的。
能源恒观 2019-03-30
  • 打赏
  • 举报
回复
可以的,记得有心跳检测
mayday526 2019-03-06
  • 打赏
  • 举报
回复
不会自动剔除,但是有默认的max_fails参数和fail_timeout参数可以让nginx判断请求的服务器是否down,若down,则会再hash选择下一台服务器
nwpulei 2018-01-19
  • 打赏
  • 举报
回复
一般装ng 插件。检测server 是否在线。我用的最多的是 heath check
X元素 2018-01-16
  • 打赏
  • 举报
回复
不会剔除,除非你开启一些插件,插件以类似于熔断机制存在, nginx核心模块中协议层转发,对于server 与client状态它是一概不知的;
阿飞云漫步 2018-01-03
  • 打赏
  • 举报
回复
自己回答吧,这几天大概学习和看了书,发现这一点 。 ip_hash 指令,用于实现会话保持功能,当某个客户端 多次请求定向到组内的一个服务器上,保证客户端与服务器建立稳定的会话。 只有当该服务器处于无效(down)状态时,客户端请求才会被下一个服务接收和处理。 简单的说就是 如果一个服务器没有 设置处于down状态,即使服务器出现问题,请求也是会发送到该服务器上,不能自动删除! 举例说明: (1) upstream bakend { ip_hash; server 192.168.0.1:8888; server 192.168.0.12:9999; } 如果192.168.0.1 服务器出现问题,那么请求还是会发送到该服务上面的。 如果你知道192.168.0.1 服务器出现问题,那么就设置成下面的配置: upstream bakend { ip_hash; server 192.168.0.1:8888 down; server 192.168.0.12:9999; } 将192.168.0.1 标记位down ,那么次服务不参与负载均衡,也就没有请求 发送到该服务器上了。 参考:Nginx高性能Web服务器详解 参考: Nginx的ip_hash指令: http://server.zzidc.com/fwqjs/222.html nginx的upstream目前支持5种方式的分配 :http://blog.chinaunix.net/uid-20662363-id-3049712.html
  • 打赏
  • 举报
回复
目测可以............
nginx-1.12.0.tar.gz 官方下载 nginx负载均衡的5种策略(转载) nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才换一个。 nginx的upstream目前支持的5种方式的分配 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserver { server 192.168.0.14; server 192.168.0.15; } 2、指定权重 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3、IP绑定 ip_hash 每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 #ip哈希化 就像是粘上去了,容易宕机 upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } 4、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 upstream backserver { server server1; server server2; fair; } 5、url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; } 在需要使用负载均衡的server中增加 proxy_pass http://backserver/; upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器) } max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 fail_timeout:max_fails次失败后,暂停的时间

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧