- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nginx负载均衡中RR与ip_hash策略分析.doc
nginx负载均衡中RR和ip_hash策略分析
:
upstream tomcats {
server 10.1.1.107:88 server 10.1.1.132:80 max_fails=3 fail_timeout=3s weight=9;
}
2、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream tomcats {
ip_hash;
server 10.1.1.107:88;
server 10.1.1.132:80;
}
3fair()
4、url_hash()
负载均衡策略no live upstreams while connecting to upstream”的记录(这就是no live产生的真正原因),并直接返回给请求的客户端一个502的错误。
2.2.3 当找到一个有效的server后,令该server的current_weight减一,然后,nginx就会尝试与该server建立连接。如果成功建立连接,跳转到2.2.4; 否则 跳转到2.2..3.1
2.2..3.1 如果nginx在等待了proxy_connect_timeout所设置的时间段后(如3秒),连接仍然没有建立成功,nginx就在错误日志中输出“upstream timed out (110: Connection timed out) while connecting to upstream”的记录(这就是 timed out(连接超时)产生的真正原因).
2.2.3 .2 接着,让当前server的失败次数加一(peer-fails++; 如果该server最大失败次达到最大失败次数,将在一段时间内该server是无效的),如果当前nginx与后台服务器的尝试次数没有达到upstream中server的总个数,重新跳转到2.2.2, 轮循下一个server, 继续尝试。如果达到最大尝试次数,就表示uptream中所有的server都尝试了一遍,没有server可以提供服务,返回一个504的错误给客户端。
2.2.4 当nginx与server建立连接成功后,如果server响应请求,把处理结果返回给nginx,
跳转到2.2.5; 否则跳转到2.2.4.1
2.2.4.1 如果nginx在等待了proxy_read_timeout所设置的时间段后(如30秒),server仍然没有对nginx发送来的请求作出响应,nginx就在错误日志中输出“upstream timed out (110: Connection timed out) while reading response header from upstream”的记录(这就是 timed out(读超时)产生的真正原因).
2.2.4.2 接着,让当前server的失败次数加一(peer-fails++; 如果该server最大失败次达到最大失败次数,将在一段时间内该server是无效的),如果当前nginx与后台服务器的尝试次数没有达到upstream中server的总个数,重新跳转到2.2.2, 轮循下一个server, 继续尝试。如果达到最大尝试次数,就表示uptream中所有的server都尝试了一遍,没有server可以提供服务,返回一个504的错误给客户端。
2.2.5 Nginx收到后台server传送过来的结果后,就会返回给客户端一个200的正确结果。这样,nginx作为反向代理的功能也就完成了。
Ip_hash策略
3.1 Ip_hash和RR 的策略有两点不同在于:
当一个客户请求到nginx后,
nginx如何选择一个最初的server,
以及当前选择的server不能提供服务时,如何选择下一个server.
3.2 RR策略回顾
从第二部分对RR的介绍中,我们知道:
当一个客户请求到达后,RR策略是从upstream的所有server中选择一个当前权重(current_weight)最大的server作为最初的server.
upstream的所有server是按照由高到低排序后存储在一个peers数组中,当最初选择的server不能提供服务时,RR策略就会选择peers数组中的下一个元素作为当前server,继续尝试, 如果已经达到数组的最大元素,就会从第一个元素再轮循。
3.3 ip_hash策略介绍
在ip_hash策略中,它选择最初的server的方法是根据请求客户端的IP计算出一个哈希值,再根据哈
文档评论(0)