$cookie_*

Префикс переменных $cookie_ используется для доступа к значениям HTTP cookie, отправляемым клиентом. — NGINX Core (HTTP)

$cookie_* NGINX Core (HTTP)

Описание

В NGINX переменные с префиксом $cookie_ обеспечивают простой доступ к значениям cookie, установленным клиентами в их HTTP-запросах. Когда клиент отправляет запрос на сервер NGINX, в нём могут присутствовать различные cookie, содержащие информацию о пользователе, сведения о сессии или предпочтения. Обращаясь к $cookie_, где — конкретное имя cookie, NGINX извлекает соответствующее значение из cookie, отправленных в запросе. Этот механизм позволяет динамически формировать содержимое на основе данных, специфичных для пользователя, хранящихся в cookie. Например, если клиент отправил cookie с именем 'user_id', её можно получить как $cookie_user_id в конфигурации. Если cookie существует, переменная возвращает его значение; если нет — возвращает пустую строку. Эта возможность широко используется в веб-приложениях для адаптации ответов в зависимости от предыдущих взаимодействий пользователя или его предпочтений. Кроме того, cookie-переменные могут использоваться в различных контекстах, например внутри блоков location или server, что позволяет задавать условные конфигурации и настраивать обработку ошибок в зависимости от состояния пользователя. Неправильная обработка значений cookie, например отсутствие проверки входных данных, может привести к уязвимостям безопасности, поэтому важно обращаться с ними с надлежащей осторожностью.

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

server {
    listen 80;
    server_name example.com;

    location / {
        if ($cookie_user_id) {
            add_header X-User-ID $cookie_user_id;
        }
    }
}

Подсистема

http

Кэшируется

Да

Тип

Префиксная переменная

Контексты

http, server, location, if, limit_except

Убедитесь, что имя cookie не содержит специальных символов или пробелов, поскольку это может привести к непредсказуемому поведению.

Учтите, что отсутствие cookie приведет к пустой строке, что может повлиять на логику в условных выражениях.

Если используется кеширование, убедитесь, что cookie управляются надлежащим образом, чтобы избежать устаревших ответов, основанных на сессиях пользователей.