ngx_http_upstream_session_sticky_module
- #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;
}
}
说明:
本指令可以打开会话保持的功能,下面是具体的参数:
cookie
设置用来记录会话的cookie名称path
设置cookie作用的URL路径,默认不设置maxage
设置cookie的生存期,默认不设置,即为session cookie,浏览器关闭即失效mode
设置cookie的模式:prefix: 不会生成新的cookie,但会在响应的cookie值前面加上特定的前缀,当浏览器带着这个有特定标识的cookie再次请求时,模块在传给后端服务前先删除加入的前缀,后端服务拿到的还是原来的cookie值,这些动作对后端透明。如:"Cookie: NAME=SRV~VALUE"。
设置用于session sticky的cookie的选项,可设置成indirect或direct。indirect不会将session sticky的cookie传送给后端服务,该cookie对后端应用完全透明。direct则与indirect相反。
maxidle
设置session cookie的最长空闲的超时时间fallback
设置是否重试其他机器,当sticky的后端机器挂了以后,是否需要尝试其他机器- 设置cookie中server标识是用明文还是使用md5值,默认使用md5
说明:
配合proxy_pass指令使用。用于在insert+indirect模式和prefix模式下删除请求用于session sticky的cookie,这样就不会将该cookie传递给后端服务。upstream表示需要进行操作的upstream名称。