request-cookies-filter: Controle refinado de cookies de requisição
Instalação
Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:
- RedHat Enterprise Linux 7, 8, 9 e 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 e 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
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_http_request_cookies_filter_module.so;
Este documento descreve o nginx-module-request-cookies-filter v0.1.0 lançado em 06 de janeiro de 2026.
Sinopse
http {
server {
listen 80;
server_name example.com;
location / {
# Se um cookie chamado "a" existir, defina-o como 1. Caso contrário, adicione um cookie chamado "a" com valor 1.
set_request_cookie a 1;
# Se um cookie chamado "b" existir, não faça nada. Caso contrário, adicione um cookie chamado "a" com valor 1.
add_request_cookie b 2;
# Se um cookie chamado "c" existir, defina-o como 3. Caso contrário, não faça nada.
modify_request_cookie c 3;
# Se um cookie chamado "d" existir, exclua-o. Caso contrário, não faça nada.
clear_request_cookie d;
# Filtragem condicional. Somente afetado se a variável $http_a não estiver vazia ou for '0'.
set_request_cookie e 4 if=$http_a;
# Envie os cookies filtrados para o upstream.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://127.0.0.1:8080;
}
}
}
Diretrizes
set_request_cookie
Sintaxe: set_request_cookie cookie_name value [if=condition];
Padrão: —
Contexto: http, server, location
Define o valor de um cookie. Se o cookie já existir, ele será modificado.
Os nomes dos cookies são sensíveis a maiúsculas e minúsculas, o mesmo abaixo.
add_request_cookie
Sintaxe: add_request_cookie cookie_name value [if=condition];
Padrão: —
Contexto: http, server, location
Adiciona um novo cookie. Se o cookie já existir, a operação é ignorada.
modify_request_cookie
Sintaxe: modify_request_cookie cookie_name value [if=condition];
Padrão: —
Contexto: http, server, location
Modifica o valor de um cookie existente. Se o cookie não existir, a operação é ignorada.
clear_request_cookie
Sintaxe: clear_request_cookie cookie_name [if=condition];
Padrão: —
Contexto: http, server, location
Remove um cookie dos cabeçalhos da requisição.
Variáveis
$filtered_request_cookies
Uma string de cookies filtrados separada por ponto e vírgula. Contém a string final de cookies após a aplicação de todas as regras de filtro. Se nenhuma regra de filtro for aplicada, a variável contém a string original de cookies, como $http_cookie.
Exemplo:
location / {
set_request_cookie user "test_user";
add_request_cookie theme "dark";
# será "user=test_user; theme=dark" se a requisição não contiver nenhum cookie.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://backend;
}
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-request-cookies-filter.