request-cookies-filter: Control detallado de cookies de solicitud
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-request-cookies-filter
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-request-cookies-filter
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_request_cookies_filter_module.so;
Este documento describe nginx-module-request-cookies-filter v0.1.0 lanzado el 06 de enero de 2026.
Sinopsis
http {
server {
listen 80;
server_name example.com;
location / {
# Si existe una cookie llamada "a", se establece en 1. De lo contrario, se añade una cookie llamada "a" con valor 1.
set_request_cookie a 1;
# Si existe una cookie llamada "b", no hace nada. De lo contrario, se añade una cookie llamada "a" con valor 1.
add_request_cookie b 2;
# Si existe una cookie llamada "c", se establece en 3. De lo contrario, no hace nada.
modify_request_cookie c 3;
# Si existe una cookie llamada "d", se elimina. De lo contrario, no hace nada.
clear_request_cookie d;
# Filtrado condicional. Solo se aplica si la variable $http_a no está vacía o es '0'.
set_request_cookie e 4 if=$http_a;
# Envía las cookies filtradas al upstream.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://127.0.0.1:8080;
}
}
}
Directivas
set_request_cookie
Sintaxis: set_request_cookie cookie_name value [if=condition];
Por defecto: —
Contexto: http, server, location
Establece el valor de una cookie. Si la cookie ya existe, se modificará.
Los nombres de las cookies son sensibles a mayúsculas y minúsculas, igual que a continuación.
add_request_cookie
Sintaxis: add_request_cookie cookie_name value [if=condition];
Por defecto: —
Contexto: http, server, location
Añade una nueva cookie. Si la cookie ya existe, la operación se ignora.
modify_request_cookie
Sintaxis: modify_request_cookie cookie_name value [if=condition];
Por defecto: —
Contexto: http, server, location
Modifica el valor de una cookie existente. Si la cookie no existe, la operación se ignora.
clear_request_cookie
Sintaxis: clear_request_cookie cookie_name [if=condition];
Por defecto: —
Contexto: http, server, location
Elimina una cookie de los encabezados de la solicitud.
Variables
$filtered_request_cookies
Una cadena de cookies filtradas separadas por punto y coma. Contiene la cadena de cookies final después de aplicar todas las reglas de filtrado. Si no se aplican reglas de filtrado, la variable contiene la cadena de cookies original, como $http_cookie.
Ejemplo:
location / {
set_request_cookie user "test_user";
add_request_cookie theme "dark";
# será "user=test_user; theme=dark" si la solicitud no contiene ninguna cookie.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://backend;
}
GitHub
Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-request-cookies-filter.