ngx_http_upstream_session_sticky_module

该模块是一个负载均衡模块,通过cookie实现客户端与后端服务器的会话保持, 在一定条件下可以保证同一个客户端访问的都是同一个后端服务器。

Example 1

# 默认配置:cookie=route mode=insert fallback=on

upstream foo {

server 192.168.0.1;

server 192.168.0.2;

session_sticky;

}

server {

location / {

proxy_pass http://foo;

}

}

Example 2

#insert + indirect模式:

upstream test {

session_sticky cookie=uid domain=www.xxx.com fallback=on path=/ mode=insert option=indirect;

server  127.0.0.1:8080;

}

server {

location / {

#在insert + indirect模式或者prefix模式下需要配置session_sticky_hide_cookie

#这种模式不会将保持会话使用的cookie传给后端服务,让保持会话的cookie对后端透明

session_sticky_hide_cookie upstream=test;

proxy_pass http://test;

}

}

指令

语法:session_sticky [cookie=name] [domain=your_domain] [path=your_path] [maxage=time] [mode=insert|rewrite|prefix] [option=indirect] [maxidle=time] [maxlife=time] [fallback=on|off] [hash=plain|md5]

默认值:session_sticky cookie=route mode=insert fallback=on

上下文:upstream

说明:

本指令可以打开会话保持的功能,下面是具体的参数:

cookie设置用来记录会话的cookie名称

domain设置cookie作用的域名,默认不设置

path设置cookie作用的URL路径,默认不设置

maxage设置cookie的生存期,默认不设置,即为session cookie,浏览器关闭即失效

mode设置cookie的模式:

insert: 在回复中本模块通过Set-Cookie头直接插入相应名称的cookie。

prefix: 不会生成新的cookie,但会在响应的cookie值前面加上特定的前缀,当浏览器带着这个有特定标识的cookie再次请求时,模块在传给后端服务前先删除加入的前缀,后端服务拿到的还是原来的cookie值,这些动作对后端透明。如:"Cookie: NAME=SRV~VALUE"。

rewrite: 使用服务端标识覆盖后端设置的用于session sticky的cookie。如果后端服务在响应头中没有设置该cookie,则认为该请求不需要进行session sticky,使用这种模式,后端服务可以控制哪些请求需要sesstion sticky,哪些请求不需要。

option 设置用于session sticky的cookie的选项,可设置成indirect或direct。indirect不会将session sticky的cookie传送给后端服务,该cookie对后端应用完全透明。direct则与indirect相反。

maxidle设置session cookie的最长空闲的超时时间

maxlife设置session cookie的最长生存期

fallback设置是否重试其他机器,当sticky的后端机器挂了以后,是否需要尝试其他机器

hash 设置cookie中server标识是用明文还是使用md5值,默认使用md5

语法: session_sticky_hide_cookie upstream=name;

默认值: none

上下文: server, location

说明:

配合proxy_pass指令使用。用于在insert+indirect模式和prefix模式下删除请求用于session sticky的cookie,这样就不会将该cookie传递给后端服务。upstream表示需要进行操作的upstream名称。

linux sticky,session_sticky命令相关推荐

  1. php 中find,Linux中find命令的用法汇总

    Linux系统中的 find 命令在查找文件时非常有用而且方便.它可以根据不同的条件来查找文件,例如权限.拥有者.修改日期/时间.文件大小等等.在这篇文章中,我们将学习如何使用 find 命令以及它所 ...

  2. Linux基础常用命令

    ps -ef用于查看全格式的全部进程,其中"ps"是在Linux中是查看进程的命令,"-e "参数代表显示所有进程,"-f"参数代表全格式. ...

  3. Linux的watch命令 -- 实时监测命令的运行结果

    watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行. 直接在 watch 后面接你想运行 ...

  4. 13. Linux权限管理命令

    Linux基础学习-Linux权限管理命令 第十七节 Linux权限管理命令学习6 重要 17.1权限分类 17.2 ugo权限 17.2.1查看ugo权限 17.2.2.ugo权限字符 17.2.3 ...

  5. Linux 下 strace 命令用法总结

    Linux 下 strace 命令用法总结 1 功能说明 strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. str ...

  6. chmod命令用法(linux中chmod命令用法)

    linuxsort命令有哪些用法? txt apple banana orange pear 2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行. [rocrocket@rocrocke ...

  7. Linux中一行命令查看网卡流量、统计网络流量的各种实现方法

    Linux中一行命令查看网卡流量.统计网络流量的各种实现方法. 方法一.nload工具 源码包路径: wget http://heanet.dl.sourceforge.net/project/nlo ...

  8. Linux(Ubuntu 命令大全)

    Linux(Ubuntu 命令大全) Ubuntu 一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的&q ...

  9. linux下find命令的使用和总结

    背景:find命令十分的好用,特别是在查找文件的时候,这个时候需要和文件通配符一起使用. 1 前言 我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样&quo ...

  10. linux 判断某个命令是否安装

    linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' ...

最新文章

  1. 《C++入门经典(第5版•修订版)》——2.6 问与答
  2. Java 7 并发编程指南
  3. MySQL高级 - 锁 - InnoDB行锁 - 基本演示
  4. leetcode 81. 搜索旋转排序数组 II(二分查找)
  5. 902. 最短编辑距离
  6. 简单说说JAVA的String和byte[]的关系
  7. iOSQuartz2D-04-手动剪裁图片并保存到相册
  8. 云锁惊艳亮相2016杭州云栖大会
  9. php用户注册表单验证
  10. STM32F401RCT6最小系统原理图设计
  11. 浏览器播放视频时蓝牙耳机自动关机
  12. MindManager历史版本下载地址
  13. 基于vue2使用vue-awesome-swiper 轮播图(踩坑记录)
  14. Channel 通道详解
  15. 多波束测深系统工作原理及组成,多波束在无人船上的应用
  16. 安排几款实用的内网穿透工具+教程
  17. 重装w11新硬盘,找不到硬盘
  18. 2019年淘宝新店如何引流
  19. 页面静态化(JSP动态页面转静态化)相关
  20. Yeelight LED智能灯泡(彩光版)代码控制(含pdf资料)

热门文章

  1. 品牌笔记本预装windows的OEM分区解决方案(联想)
  2. 解决windows 下文件名太长无法删除的问题
  3. 怎么恢复格式化的sd卡呢?
  4. Java并发编程学习篇3_读写锁ReadWriteLock、阻塞队列BlockingQueue、同步队列SynchronousQueue、线程池(三大方法、七大参数、四种拒绝策略、原生方式创建线程池)
  5. 安卓iccid_普通人也可以做码农?安卓手机上这些代码你也可以用
  6. 智能眼镜现在是什么水平?
  7. iOS下86版五笔输入法练习程序(作为备忘,最基本功能的演示demo,版本:0.99版)
  8. 《重构--改善既有代码的设计》--代码的坏味道(3)
  9. [R] R语言删除字符串中的空值““
  10. 台式计算机用u盘给电脑安装系统,台式机用u盘装系统,教您用u盘装系统给台式机...