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不同步问题,但是无法解决宕机后会话转移问题。

nginx保持会话的方式的更多相关文章

  1. 3种web会话管理方式

    一.基于server端的session管理 在早期web应用中,通常使用服务端session来管理用户的会话.快速了解服务端session: 1) 服务端session是用户第一次访问应用时,服务器就 ...

  2. (转)web会话管理方式

    阅读目录 1. 基于server端session的管理 2. cookie-based的管理方式 3. token-based的管理方式 4. 安全问题 5. 总结 http是无状态的,一次请求结束, ...

  3. Nginx常见的安装方式

    Nginx常见的安装方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx的安装版本分为开发版.稳定版和过期版, Nginx安装可以使用yum或源码安装 ...

  4. http 3种web会话管理方式

    http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端. ...

  5. nginx cookie 会话保持功能

    sticky 会话保持,基于自定义cookie 进行会话保持的方式 安装包下载地址:https://github.com/bymaximus/nginx-sticky-module-ng ./conf ...

  6. Haproxy的三种保持客户端会话保持方式

    2017-03-25 15:41:41   haproxy 三种保持客户端Seesion; 一.源地址hash(用户IP识别) haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类 ...

  7. nginx和php-fpm调用方式

    一.背景: 在开发中碰到一个问题,项目以nginx+php-fpm形式访问交互,结果访问项目时报错如下图:   二.分析: 提示很明确嘛,去看error.log(在nginx.conf或者vhost里 ...

  8. [转]Nginx的负载均衡方式

    如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...

  9. Nginx与Apache工作方式

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://going.blog.51cto.com/7876557/1304204 Ngin ...

随机推荐

  1. 根据id获取某一类的最大最小值

    ->selectRaw('max(marking_price) as maxPrice, min(marking_price) as minPrice, product_id') ->gr ...

  2. Python while循环实现重试

    try: pass#要执行的代码 except: 状态=True while 状态==True: try: winsound.Beep(800, 1000)#报警提示音 循环=300 while 循环 ...

  3. jetty 插件启动指定端口号

    clean jetty:run -Djetty.port=端口号

  4. 函数式编程语言(Fuction Program Language)

    一.什么是函数式编程语言 函数式编程语言(functional progarm language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型. ...

  5. PAT 1019 General Palindromic Number

    1019 General Palindromic Number (20 分)   A number that will be the same when it is written forwards ...

  6. Hadoop设置任务执行队列及优先级

    Hive设置方法: SET mapreduce.job.queuename=root.up; SET mapreduce.job.priority=HIGH; set tez.queue.name=c ...

  7. Django之REST framework源码分析

    前言: Django REST framework,是1个基于Django搭建 REST风格API的框架: 1.什么是API呢? API就是访问即可获取数据的url地址,下面是一个最简单的 Djang ...

  8. win10系统office2010每次打开总是出现配置进度

  9. python2x 与 python3x 区别

    python2.x 与 python3.x 的区别: 1. python2.x 的源码编码不规范,源码重复较多:python3.x 的源码编码规范,清晰.优美.简单 2. python2.x的默认字符 ...

  10. LY.JAVA面向对象编程.内部类

    2018-07-18 10:14:48 /* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部 ...