linux---集群架构初探(21)Nginx负载均衡

nginx负载均衡

使用upstream模板定义目标服务器列表,当有请求时,按照制定的规则选择一台服务器发送请求。

实例

lb01服务器配置文件/etc/nginx/conf.d/proxy.conf

linux---集群架构初探(21)Nginx负载均衡

注:weight是一种负载均衡策略,权重。

web01、web02配置文件/etc/nginx/conf.d/proxy.conf (web02对应的ip是172.16.1.8)

linux---集群架构初探(21)Nginx负载均衡

本地hosts:192.168.1.5 www.pm.com blog.pm.com

在浏览器中输入:www.pm.com,多次刷新,发现依次在7和8转换

linux---集群架构初探(21)Nginx负载均衡    linux---集群架构初探(21)Nginx负载均衡

负载均衡策略

 常用的策略

轮询 默认方式
weight 权重方式
ip_hash 依据ip方式
least_conn 最少连接方式
fair(第三方) 响应时间方式
url_hash(第三方) 依据url方式

常用的参数

linux---集群架构初探(21)Nginx负载均衡

注:默认fail_timeout=10s max_fails=1

1.轮询

默认的匹配方式,如有两台服务器A和B,则访问顺序为ABABABABAB...

此策略适合服务器配置相当,无状态且短平快的服务使用。

2.权重

weight值默认为1,权重值越高,负载的压力越大,如:

linux---集群架构初探(21)Nginx负载均衡

服务器A为172.16.1.7,另一台为B,则访问顺序为ABBABBABBABB...

此策略比较适合服务器的硬件配置差别比较大的情况

3.ip_hash

保证同一ip每次都访问同一服务器,以保证session会话。

linux---集群架构初探(21)Nginx负载均衡

如此设置后,我每次访问的服务器都是7或者都是8。

注:ip_hash不能与backup同时使用。当有服务器需要剔除,必须手动down掉。

此策略适合有状态服务,比如session

4.least_conn

把请求转发给连接数较少的后端服务器。在轮询方式下,如果占用时间较长的请求都集中在一台服务器,会导致其负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

linux---集群架构初探(21)Nginx负载均衡

此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。

5.第三方策略

第三方的负载均衡策略的实现需要安装第三方插件。

①fair

按照服务器端的响应时间来分配请求,响应时间短的优先分配。

②url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。 

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

上述  proxy_pass http://服务器组名  的方式属于基于http协议的七层负载均衡。

四层负载均衡是基于ip和端口的,实例讲解:

1.在lb01中/etc/nginx/nginx.conf文件中添加

linux---集群架构初探(21)Nginx负载均衡

注意:此行要放在http模块外面。

2.创建/etc/nginx/conf.c/proxy_ssh.conf

linux---集群架构初探(21)Nginx负载均衡

注:这里upstream里不要写多个地址,因为我们想连接某个服务器,是要固定连接,而写多个地址的话,就会一会连接这个服务器,一会又连接另一个服务器。

3.重启nginx服务,使用xshell打开一个新标签,使用如下命令

linux---集群架构初探(21)Nginx负载均衡

在弹出的对话框中输入密码,登陆成功。

linux---集群架构初探(21)Nginx负载均衡

上一篇:在Mac OS上运行AVS3并用CLion进行调试


下一篇:Guava Cache