模块 ngx_http_userid_module

配置示例
指令
     userid
     userid_domain
     userid_expires
     userid_flags
     userid_mark
     userid_name
     userid_p3p
     userid_path
     userid_service
内嵌变量

ngx_http_userid_module 模块设置适用于客户端标识的 cookie。可以使用内嵌变量 $uid_got$uid_set 记录接收和设置的 cookie。该模块与 Apache 的 mod_uid 模块兼容。

配置示例

userid         on;
userid_name    uid;
userid_domain  example.com;
userid_path    /;
userid_expires 365d;
userid_p3p     'policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"';

指令

语法 userid on | v1 | log | off;
默认值
userid off;
上下文 http, server, location

启用或禁用设置 cookie 和记录接收到的 cookie

on
启用设置版本 2 cookie 并记录接收到的 cookie;
v1
启用设置版本 1 cookie 并记录接收到的 cookie;
log
禁用设置 cookie,但启用记录接收到的 cookie;
off
禁用设置 cookie 和记录接收到的 cookie。

语法 userid_domain name | none;
默认值
userid_domain none;
上下文 http, server, location

定义设置 cookie 的域。参数 none 禁用为 cookie 设置域。

语法 userid_expires time | max | off;
默认值
userid_expires off;
上下文 http, server, location

设置浏览器应保留 cookie 的时间。参数 max 将使 cookie 在“31 Dec 2037 23:55:55 GMT”过期。参数 off 将使 cookie 在浏览器会话结束时过期。

语法 userid_flags off | flag ...;
默认值
userid_flags off;
上下文 http, server, location

该指令出现在 1.19.3 版本中。

如果参数不是 off,则为一个或多个 cookie 定义附加标志:secure, httponly, samesite=strict, samesite=lax, samesite=none

语法 userid_mark letter | digit | = | off;
默认值
userid_mark off;
上下文 http, server, location

如果参数不是 off,则启用 cookie 标记机制并设置用作标记的字符。此机制用于在保留客户端标识符的同时添加或更改 userid_p3p 和/或 cookie 过期时间。标记可以是英文字母(区分大小写)、数字或“=”字符。

如果设置了标记,则将其与 cookie 中传递的客户端标识符的 base64 表示中的第一个填充符号进行比较。如果它们不匹配,则使用指定的标记、过期时间和“P3P”头部重新发送 cookie。

语法 userid_name name;
默认值
userid_name uid;
上下文 http, server, location

设置 cookie 名称。

语法 userid_p3p string | none;
默认值
userid_p3p none;
上下文 http, server, location

设置将与 cookie 一起发送的“P3P”头部字段的值。如果指令设置为特殊值 none,则响应中将不会发送“P3P”头部。

语法 userid_path path;
默认值
userid_path /;
上下文 http, server, location

定义设置 cookie 的路径。

语法 userid_service number;
默认值
userid_service IP address of the server;
上下文 http, server, location

如果标识符由多个服务器(服务)颁发,则应为每个服务分配自己的 number,以确保客户端标识符的唯一性。对于版本 1 cookie,默认值为零。对于版本 2 cookie,默认值是根据服务器 IP 地址的最后四个八位字节组成的数字。

内嵌变量

ngx_http_userid_module 模块支持以下内嵌变量

$uid_got
cookie 名称和接收到的客户端标识符。
$uid_reset
如果此变量设置为非空字符串且不是“0”,则客户端标识符将被重置。特殊值“log”还会将有关重置标识符的消息输出到 error_log
$uid_set
cookie 名称和发送的客户端标识符。