当前位置: 首页 >服务端 > Nginx详解十五:Nginx场景实践篇之负载均衡

Nginx详解十五:Nginx场景实践篇之负载均衡

 

负载均衡

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

GSLB(全局的负载均衡,往往是以国家为单位,或者以省为单位)

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

SLB

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

 Nginx就是一个典型的SLB模型,

分为四层负载均衡和七层负载均衡

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

七层负载均衡可以处理应用层,如thhp信息,Nginx就是典型的七层负载均衡SLB

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

Nginx实现负载均衡的原理

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

配置语法

配置语法:upstream name {...};
默认状态:-;
配置方法:http

 

在/opt/app/下创建code1、code2、code3目录,并放入3个html

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 在/etc/nginx/conf.d/下准备好三个conf

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

检查配置语法并重载

nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

 Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

在另一台服务器上配置一个conf

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

每次请求都会不一样,且轮流分配(轮询),此时如果有一台机器挂了,如server2挂了,那么则会在server1和server3之间不断轮询,不再访问server2

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

upstream举例

upstream backend{
  server backend1.example.com weight=5;
  server backend1.example.com:8080;
  server unix:/tmp/backen3;

  server backup1.example.com:8080 backup;
  server backup2.example.com:8080 backup;
}

 

后端服务器在负载均衡调度中的状态

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

不管如何刷新都只有server3提供服务,即8001和8002不服务

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

把访问8003的请求drop掉:iptables -I INPUT -p tcp --dport 8003 -j DROP

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

服务端会把请求转到server2上,后面不管怎么刷新,都会访问server2

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

清理掉iptable规则再访问:iptables -F

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

又变回server3,且一直是server3

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

轮询策略与加权轮询

调度算法

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

加权轮询:以下配置为,当有7个请求过来的时候,会有5和请求分配给8002

 Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

ip_hash:同一个IP永远只访问一个后端,解决身份验证失效的问题

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

不管怎么刷新,都只定位到一台服务器上

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

url_hash(1.7.2之后的版本支持):

配置语法:hash key [consistent];
默认状态:-;
配置方法:upstream

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

Nginx详解十五:Nginx场景实践篇之负载均衡 _ JavaClub全栈架构师技术笔记

 

此时不会执行轮询,访问哪一个url,hash绑定到一个后端服务后,就永远只访问那一台机器

 

作者:向前走。
来源链接:https://www.cnblogs.com/zhongyehai/p/10514042.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113425.html

标签:Nginx
分享给朋友: