Nginx-会话保持

nginx会话保持主要有以下几种实现方式。

#一、ip_hash
ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。

#####ip_hash语法:

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
}

ip_hash简单易用,但有如下问题:
当后端服务器宕机后,session会话丢失;
同一客户端会被转发到同一个后端服务器,可能导致负载失衡;

#二、sticky_cookie_insert
使用sticky_cookie_insert启用会话亲缘关系,这会导致来自同一客户端的请求被传递到一组服务器的同一台服务器。与ip_hash不同之处在于,它不是基于IP来判断客户端的,而是基于cookie来判断。因此可以避免上述ip_hash中来自同一客户端导致负载失衡的情况。(需要引入第三方模块才能实现)

sticky模块
#####语法:

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    sticky_cookie_insert srv_id expires=1h domain=3evip.cn path=/;
}

server {
    listen 80;
    server_name 3evip.cn;
    location / {
		proxy_pass http://backend;
    }
}

#####说明:
expires:设置浏览器中保持cookie的时间
domain:定义cookie的域
path:为cookie定义路径

#3、jvm_route

jvm_route的原理

  1. 第一次请求过来,是没有带session信息的,jvm_route就根据round robin的方法,发到一台tomcat上面。

  2. tomcat添加上session 信息,并返回给客户。

  3. 用户再此请求,jvm_route看到session中有后端服务器的名称,它就把请求转到对应的服务器上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值