zoukankan      html  css  js  c++  java
  • nginx会话保持

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

    1、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会话丢失; 同一客户端会被转发到同一个后端服务器,可能导致负载失衡;

    2、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://backen;
      }
    }

    说明: 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中有后端服务器的名称,它就把请求转到对应的服务器上。

  • 相关阅读:
    useState回调函数
    Ahook
    我的创业和职业观点
    一个超级工业软件的能力在哪
    【542】Mac上面修改jupyter notebook默认打开页面
    【541】shapely 相关功能
    【540】时间戳数字转换为格式化时间
    【539】地球两点距离以及面积计算
    【538】二维数据实现随机采样
    新春首发!Spring Boot 2 个新版本...
  • 原文地址:https://www.cnblogs.com/wyglog/p/12491541.html
Copyright © 2011-2022 走看看