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

    1)ip_hash

      简单易用,但是有如下缺点

    • 后端服务器宕机后,session会丢失
    • 来自同一局域网的客户端会被转发到同一个后端服务器,可能导致负载失衡
    • 不适用CDN网络,不适用于前段还有代理的情况

    2)sticky_cookie_insert

      使用sticky_cookie_insert启用会话亲缘关系,这会导致来自同一客户端的请求被传递到一组服务器的同一台服务器;与ip_hash不同之处在于,他不是基于ip来判断客户端的,而是基于cookie来判断;因此可以避免上述ip_hash中来自同一局域网的客户端和前段代理导致负载失衡的情况。

      说明:

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

    3)jvm_route方式

      这个模块通过session_cookie的方式来获取session粘性。如果在cookie和url中并没有session,则这只是个简单的round-robin负载均衡。

      jvm_route的原理

    • 一开始请求过来,没有带session的信息,jvm_route就根据round robin的方法,发到一台Tomcat上面
    • Tomcat添加上session信息,并返回给客户
    • 用户再次请求,jvm_route看到session中有后端服务器的名称,他就把请求转到对应的服务器上

      暂时jvm_route模块还不支持fair的模式。jvm_route的工作模式和fair是冲突的。对于某个特定用户,当一直为他服务的Tomcat宕机后,默认情况下它会重试max_fails的次数,如果还是失败,就重新启用round robin的方式,而这种情况下就会导致用户的session丢失。

      jvm_route是通过session_cookie这种方式来实现session粘性,将特定会话附属到特定tomcat上,从而解决session不同步问题,但是无法解决宕机后会话转移问题。

  • 相关阅读:
    Django开发笔记一
    Netty+SpringBoot写一个基于Http协议的文件服务器
    SQL优化
    mysql 字符串数字转换
    git 常用的命令总结
    eclipse 使用Maven deploy命令部署构建到Nexus
    intellij idea远程debug调试resin4教程
    postman 请求种添加用户权限
    对List中每个对象元素按时间顺序排序
    List根据时间字符串排序
  • 原文地址:https://www.cnblogs.com/qfdxxdr/p/7640000.html
Copyright © 2011-2022 走看看