1.轮询(轮着询问)

添加一个关键字,与server同级

upstream orderuserserver{

#根据后端服务器的访问地址编辑元素内容

server 127.0.0.1:8090;

server 127.0.0.1:8091;

server 127.0.0.1:8092;

}

相当于一个对象是List<Server>

Server对象作为元素记录的时候服务器的ip:port

orderuserserver的变量指向了一个内存中包含了3个服务器信息的list对象

 

server中修改proxy_pass

Nginx的负载均衡配置

负载均衡的流转逻辑

  • 浏览器发起请求http://www.os.com/index.html
  • hosts文件找映射127.0.0.1

http://127.0.0.1:80/index.html

判断orderuserserver的对象是否存在

2.权重(权衡比重)

权重的意义:根据服务器的性能按照比例的分配所有的并发请求到不同服务器,新能低的处理并发少,比例小,反之亦然

 

轮询配置的upstream的基础上多添加2个关键字到nginx.conf文件中

 

weight=权重整数值

down;

upstream orderuserserver{

#根据后端服务器的访问地址编辑元素内容

server 127.0.0.1:8090 weight=1;

server 127.0.0.1:8091 weight=20;

server 127.0.0.1:8092 down;

}

上述配置造成8091所在的服务器承担了绝大部分的负载均衡的请求,同时nginx不会在将任何请求发送到8092中

 

在集群中容易出现故障,对于长时间不能恢复的集群节点,可以采用down的处理方式

3.ip黏着

session的集群共享问题(用户登录状态访问)

  • ip黏着解决的问题

session无法在集群中共享

Nginx的负载均衡配置

 

session共享的问题描述:

如果继续在集群中使用session存储域属性(以登录逻辑为例)

会造成登录时访问一个负载均衡的后端服务器,跳转首页显示欢迎谁回来从sessoin访问负载均衡的另外的节点导致服务器之间的session不能共享;easymall使用redis处理共享数据的问题

Nginx的负载均衡配置

 

  •  nginx提供的ip_hash黏着解决session共享问题

 

原理:客户端ip地址不变(10.9.115.116),判断是否是同一个客户端,将会对ip做hash处理(hash取余).ip地址不变,绑定的后端负载均衡的服务器就不变.

使用ip_hash黏着,无法体验到集群的高可用效果

 

upstream orderuserserver{

#根据后端服务器的访问地址编辑元素内容

ip_hash;

server 127.0.0.1:8090 ;

server 127.0.0.1:8091 ;

server 127.0.0.1:8092 ;

}

相关文章:

猜你喜欢
  • 2021-10-02
  • 2021-12-12
  • 2021-10-20
  • 2021-07-30
  • 2021-05-31
  • 2021-04-29
  • 2021-08-24
相关资源
相似解决方案