Модуль 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 выдаёт куки для идентификации клиентов. Для записи в лог полученных и выданных кук можно использовать встроенные переменные $uid_got и $uid_set. Модуль совместим с модулем mod_uid для Apache.

Пример конфигурации

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

Разрешает или запрещает выдачу кук и запись приходящих кук в лог:

on
разрешает выдачу кук версии 2 и запись приходящих кук в лог;
v1
разрешает выдачу кук версии 1 и запись приходящих кук в лог;
log
запрещает выдачу кук, но разрешает запись приходящих кук в лог;
off
запрещает выдачу кук и запись приходящих кук в лог.

Синтаксис: userid_domain имя | none;
Умолчание:
userid_domain none;
Контекст: http, server, location

Задаёт домен, для которого устанавливается кука. Параметр none запрещает выдавать домен для куки.

Синтаксис: userid_expires время | max | off;
Умолчание:
userid_expires off;
Контекст: http, server, location

Задаёт время, в течение которого браузер должен хранить куку. Параметр max устанавливает срок хранения куки до 31 декабря 2037 года 23:55:55 GMT. Указание параметра off позволяет ограничить время действия куки сессией браузера.

Синтаксис: userid_flags off | флаг ...;
Умолчание:
userid_flags off;
Контекст: http, server, location

Эта директива появилась в версии 1.19.3.

Если параметр не off, задаёт один или несколько дополнительных флагов для куки: secure, httponly, samesite=strict, samesite=lax, samesite=none.

Синтаксис: userid_mark буква | цифра | = | off;
Умолчание:
userid_mark off;
Контекст: http, server, location

Если параметр не off, включает механизм маркировки кук и задаёт символ, используемый в качестве метки. Этот механизм позволяет добавить или изменить userid_p3p и/или время хранения куки, но при этом оставить неизменным идентификатор клиента. Меткой может быть любая буква английского алфавита (с учётом регистра), цифра или знак “=”.

Если метка задана, то она сравнивается с первым дополняющим символом в base64 представлении идентификатора клиента, передаваемом в куке. Если они не совпадают, то кука перепосылается с заданной меткой, временем хранения и заголовком “P3P”.

Синтаксис: userid_name имя;
Умолчание:
userid_name uid;
Контекст: http, server, location

Задаёт имя куки.

Синтаксис: userid_p3p строка | none;
Умолчание:
userid_p3p none;
Контекст: http, server, location

Задаёт значение для поля заголовка “P3P”, которое будет выдаваться вместе с кукой. Если задано специальное значение none, то в ответе не будет заголовка “P3P”.

Синтаксис: userid_path путь;
Умолчание:
userid_path /;
Контекст: http, server, location

Задаёт путь, для которого устанавливается кука.

Синтаксис: userid_service номер;
Умолчание:
userid_service IP-адрес сервера;
Контекст: http, server, location

Если идентификаторы выдаются несколькими серверами (сервисами), то каждому сервису следует назначить свой собственный номер, для обеспечения уникальности выдаваемых идентификаторов клиентов. По умолчанию для кук первой версии используется ноль. Для кук второй версии по умолчанию используется число, составленное из последних четырёх октетов IP-адреса сервера.

Встроенные переменные

Модуль ngx_http_userid_module поддерживает следующие встроенные переменные:

$uid_got
Имя куки и полученный идентификатор клиента.
$uid_reset
Если значением является непустая строка не равная “0”, то клиентские идентификаторы перевыдаются. Специальное значение “log” дополнительно приводит к выдаче сообщений о перевыданных идентификаторах в error_log.
$uid_set
Имя куки и выданный идентификатор клиента.