set_request_cookie
Устанавливает значение указанного cookie: изменяет его, если он уже существует, или создаёт новый, если он не найден.
Описание
Директива set_request_cookie является частью модуля ngx_http_request_cookies_filter_module, который предоставляет тонкий контроль над куки в запросе. Эта директива позволяет разработчикам задать значение куки в заголовках запроса с указанным именем. Если куки уже существует, директива заменит его значение на новое. Если он не существует, будет создан новый куки с указанным именем и значением.
Директива принимает необязательное условие в параметре if, которое можно использовать для управления моментом применения — оно будет применено только если указанное условие оценится в true. Это полезно в сценариях, когда изменение куки должно выполняться условно на основании других параметров запроса, таких как существующие куки или заголовки. Важно, что имена куки чувствительны к регистру, и любые изменения будут распространяться в процессе обработки запроса, что может повлиять на поведение ответа в зависимости от того, как приложение обрабатывает куки.
Директива чувствительна к контексту и может использоваться в контекстах http, server и location, что даёт гибкие варианты конфигурации в зависимости от маршрутизации и потребностей управления состоянием приложения. В целом, set_request_cookie — мощный инструмент для управления состоянием куки в приложении на базе NGINX.
Пример конфига
http {
server {
listen 80;
server_name example.com;
location / {
set_request_cookie a 1;
set_request_cookie e 4 if=$http_a;
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://127.0.0.1:8080;
}
}
}Помните, что имена куки чувствительны к регистру. Соблюдайте согласованность в наименованиях, чтобы избежать непредвиденного поведения.
При использовании параметра if убедитесь, что условие правильно определено — иначе директива может быть проигнорирована, если условие оценивается как false.
Тестирование и отладка поведения куки могут быть сложными; используйте средства логирования и отладки для проверки состояний куки.