request-cookies-filter: Feingranulare Kontrolle über Anfrage-Cookies
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und 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
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_request_cookies_filter_module.so;
Dieses Dokument beschreibt nginx-module-request-cookies-filter v0.1.0 veröffentlicht am 06. Januar 2026.
Synopsis
http {
server {
listen 80;
server_name example.com;
location / {
# Wenn ein Cookie mit dem Namen "a" existiert, setzen Sie es auf 1. Andernfalls fügen Sie ein Cookie mit dem Namen "a" und dem Wert 1 hinzu.
set_request_cookie a 1;
# Wenn ein Cookie mit dem Namen "b" existiert, tun Sie nichts. Andernfalls fügen Sie ein Cookie mit dem Namen "a" und dem Wert 1 hinzu.
add_request_cookie b 2;
# Wenn ein Cookie mit dem Namen "c" existiert, setzen Sie es auf 3. Andernfalls tun Sie nichts.
modify_request_cookie c 3;
# Wenn ein Cookie mit dem Namen "d" existiert, löschen Sie es. Andernfalls tun Sie nichts.
clear_request_cookie d;
# Bedingte Filterung. Wirkt sich nur aus, wenn die Variable $http_a nicht leer oder '0' ist.
set_request_cookie e 4 if=$http_a;
# Senden Sie die gefilterten Cookies an den Upstream.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://127.0.0.1:8080;
}
}
}
Direktiven
set_request_cookie
Syntax: set_request_cookie cookie_name value [if=condition];
Standard: —
Kontext: http, server, location
Setzt den Wert eines Cookies. Wenn das Cookie bereits existiert, wird es geändert.
Cookie-Namen sind groß- und kleinschreibungsempfindlich, das gleiche gilt für die folgenden.
add_request_cookie
Syntax: add_request_cookie cookie_name value [if=condition];
Standard: —
Kontext: http, server, location
Fügt ein neues Cookie hinzu. Wenn das Cookie bereits existiert, wird die Operation ignoriert.
modify_request_cookie
Syntax: modify_request_cookie cookie_name value [if=condition];
Standard: —
Kontext: http, server, location
Ändert den Wert eines bestehenden Cookies. Wenn das Cookie nicht existiert, wird die Operation ignoriert.
clear_request_cookie
Syntax: clear_request_cookie cookie_name [if=condition];
Standard: —
Kontext: http, server, location
Entfernt ein Cookie aus den Anfrage-Headern.
Variablen
$filtered_request_cookies
Ein durch Semikolons getrenntes String von gefilterten Cookies. Enthält den endgültigen Cookie-String nach Anwendung aller Filterregeln. Wenn keine Filterregeln angewendet werden, enthält die Variable den ursprünglichen Cookie-String, wie $http_cookie.
Beispiel:
location / {
set_request_cookie user "test_user";
add_request_cookie theme "dark";
# wird "user=test_user; theme=dark" sein, wenn die Anfrage keine Cookies enthält.
proxy_set_header Cookie $filtered_request_cookies;
proxy_pass http://backend;
}
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-request-cookies-filter.