session: Session-Bibliothek für nginx-module-lua – flexibel und sicher
Installation
Wenn Sie kein RPM-Repository-Abonnement eingerichtet haben, registrieren Sie sich. Danach können Sie mit den folgenden Schritten fortfahren.
CentOS/RHEL 7 oder Amazon Linux 2
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 lua-resty-session
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-session
Um diese Lua-Bibliothek mit NGINX zu verwenden, stellen Sie sicher, dass nginx-module-lua installiert ist.
Dieses Dokument beschreibt lua-resty-session v4.2.0, veröffentlicht am 24. August 2026.
lua-resty-session ist eine sichere und flexible Session-Bibliothek für OpenResty.
TL;DR;
- Sessions sind unveränderlich (jedes Speichern erzeugt eine neue Session) und ohne Sperren (lockless).
- Session-Daten werden mit AES-256-GCM verschlüsselt, wobei ein Schlüssel verwendet wird, der mit HKDF-SHA256 abgeleitet wird (im FIPS-Modus wird stattdessen PBKDF2 mit SHA-256 verwendet).
- Die Session hat einen Header fester Größe, der mit HMAC-SHA256 MAC mit einem Schlüssel geschützt ist, der mit HKDF-SHA256 abgeleitet wird (im FIPS-Modus wird stattdessen PBKDF2 mit SHA-256 verwendet).
- Session-Daten können in einem zustandslosen Cookie oder in verschiedenen Backend-Speichern abgelegt werden.
- Ein einzelnes Session-Cookie kann mehrere Sessions über verschiedene Zielgruppen (audiences) hinweg verwalten.
Hinweis: Version 4.0.0 war eine Neufassung dieser Bibliothek mit vielen Erkenntnissen aus den vergangenen Jahren. Wenn Sie noch eine ältere Version verwenden, lesen Sie bitte die alte Dokumentation.
Synopsis
worker_processes 1;
events {
worker_connections 1024;
}
http {
init_by_lua_block {
require "resty.session".init({
remember = true,
audience = "demo",
secret = "RaJKp8UQW1",
storage = "cookie",
})
}
server {
listen 8080;
server_name localhost;
default_type text/html;
location / {
content_by_lua_block {
ngx.say([[
<html>
<body>
<a href=/start>Start the test</a>
</body>
</html>
]])
}
}
location /start {
content_by_lua_block {
local session = require "resty.session".new()
session:set_subject("OpenResty Fan")
session:set("quote", "The quick brown fox jumps over the lazy dog")
local ok, err = session:save()
ngx.say(string.format([[
<html>
<body>
<p>Session started (%s)</p>
<p><a href=/started>Check if it really was</a></p>
</body>
</html>
]], err or "no error"))
}
}
location /started {
content_by_lua_block {
local session, err = require "resty.session".start()
ngx.say(string.format([[
<html>
<body>
<p>Session was started by %s (%s)</p>
<p><blockquote>%s</blockquote></p>
<p><a href=/modify>Modify the session</a></p>
</body>
</html>
]],
session:get_subject() or "Anonymous",
err or "no error",
session:get("quote") or "no quote"
))
}
}
location /modify {
content_by_lua_block {
local session, err = require "resty.session".start()
session:set_subject("Lua Fan")
session:set("quote", "Lorem ipsum dolor sit amet")
local _, err_save = session:save()
ngx.say(string.format([[
<html>
<body>
<p>Session was modified (%s)</p>
<p><a href=/modified>Check if it is modified</a></p>
</body>
</html>
]], err or err_save or "no error"))
}
}
location /modified {
content_by_lua_block {
local session, err = require "resty.session".start()
ngx.say(string.format([[
<html>
<body>
<p>Session was started by %s (%s)</p>
<p><blockquote>%s</blockquote></p>
<p><a href=/destroy>Destroy the session</a></p>
</body>
</html>
]],
session:get_subject() or "Anonymous",
err or "no error",
session:get("quote") or "no quote"
))
}
}
location /destroy {
content_by_lua_block {
local ok, err = require "resty.session".destroy()
ngx.say(string.format([[
<html>
<body>
<p>Session was destroyed (%s)</p>
<p><a href=/destroyed>Check that it really was?</a></p>
</body>
</html>
]], err or "no error"))
}
}
location /destroyed {
content_by_lua_block {
local session, err = require "resty.session".open()
ngx.say(string.format([[
<html>
<body>
<p>Session was really destroyed, you are known as %s (%s)</p>
<p><a href=/>Start again</a></p>
</body>
</html>
]],
session:get_subject() or "Anonymous",
err or "no error"
))
}
}
}
}
Konfiguration
Die Konfiguration kann in die allgemeine Session-Konfiguration und die serverseitige Speicherkonfiguration unterteilt werden.
Hier ist ein Beispiel:
init_by_lua_block {
require "resty.session".init({
remember = true,
store_metadata = true,
secret = "RaJKp8UQW1",
secret_fallbacks = {
"X88FuG1AkY",
"fxWNymIpbb",
},
storage = "postgres",
postgres = {
username = "my-service",
password = "kVgIXCE5Hg",
database = "sessions",
},
})
}
Session-Konfiguration
Die Session-Konfiguration kann an Initialisierung, Konstruktoren und Hilfsfunktionen übergeben werden.
Hier sind die möglichen Session-Konfigurationsoptionen:
| Option | Standard | Beschreibung |
|---|---|---|
secret |
nil |
Geheimnis, das für die Schlüsselableitung verwendet wird. Das Geheimnis wird vor der Verwendung mit SHA-256 gehasht. Z. B. "RaJKp8UQW1". |
secret_fallbacks |
nil |
Array von Geheimnissen, die als alternative Geheimnisse verwendet werden können (bei Schlüsselrotation), z. B. { "6RfrAYYzYq", "MkbTkkyF9C" }. |
ikm |
(zufällig) | Initiales Schlüsselmaterial (oder ikm) kann direkt angegeben werden (ohne ein Geheimnis zu verwenden) mit genau 32 Bytes Daten. Z. B. "5ixIW4QVMk0dPtoIhn41Eh1I9enP2060" |
ikm_fallbacks |
nil |
Array von initialen Schlüsselmaterialien, die als alternative Schlüssel verwendet werden können (bei Schlüsselrotation), z. B. { "QvPtlPKxOKdP5MCu1oI3lOEXIVuDckp7" }. |
cookie_prefix |
nil |
Cookie-Präfix, verwenden Sie nil, "__Host-" oder "__Secure-". |
cookie_name |
"session" |
Name des Session-Cookies, z. B. "session". |
cookie_path |
"/" |
Cookie-Pfad, z. B. "/". |
cookie_domain |
nil |
Cookie-Domain, z. B. "example.com" |
cookie_http_only |
true |
Cookie als HTTP-only markieren, verwenden Sie true oder false. |
cookie_secure |
nil |
Cookie als secure markieren, verwenden Sie nil, true oder false. |
cookie_priority |
nil |
Cookie-Priorität, verwenden Sie nil, "Low", "Medium" oder "High". |
cookie_same_site |
"Lax" |
Cookie-Same-Site-Richtlinie, verwenden Sie nil, "Lax", "Strict", "None" oder "Default" |
cookie_same_party |
nil |
Cookie mit Same-Party-Flag markieren, verwenden Sie nil, true oder false. |
cookie_partitioned |
nil |
Cookie mit Partitioned-Flag markieren, verwenden Sie nil, true oder false. |
remember |
false |
Persistente Sessions aktivieren oder deaktivieren, verwenden Sie nil, true oder false. |
remember_safety |
"Medium" |
Komplexität der Schlüsselableitung für Remember-Cookies, verwenden Sie nil, "None" (schnell), "Low", "Medium", "High" oder "Very High" (langsam). |
remember_cookie_name |
"remember" |
Name des persistenten Session-Cookies, z. B. "remember". |
audience |
"default" |
Session-Zielgruppe, z. B. "my-application". |
subject |
nil |
Session-Subjekt, z. B. "[email protected]". |
enforce_same_subject |
false |
Wenn auf true gesetzt, müssen Zielgruppen dasselbe Subjekt teilen. Die Bibliothek entfernt beim Speichern Daten von Zielgruppen, die nicht zum Subjekt passen. |
stale_ttl |
10 |
Wenn eine Session gespeichert wird, wird eine neue Session erstellt. stale_ttl gibt an, wie lange die alte noch verwendet werden kann, z. B. 10 (in Sekunden). |
idling_timeout |
900 |
Der Idling-Timeout gibt an, wie lange die Session inaktiv sein kann, bis sie als ungültig betrachtet wird, z. B. 900 (15 Minuten) (in Sekunden), 0 deaktiviert die Prüfungen und das Berühren (touching). |
rolling_timeout |
3600 |
Der Rolling-Timeout gibt an, wie lange die Session verwendet werden kann, bis sie erneuert werden muss, z. B. 3600 (eine Stunde) (in Sekunden), 0 deaktiviert die Prüfungen und das Rollieren. |
absolute_timeout |
86400 |
Der Absolute-Timeout begrenzt, wie lange die Session erneuert werden kann, bis eine erneute Authentifizierung erforderlich ist, z. B. 86400 (ein Tag) (in Sekunden), 0 deaktiviert die Prüfungen. |
remember_rolling_timeout |
604800 |
Der Remember-Timeout gibt an, wie lange die persistente Session als gültig betrachtet wird, z. B. 604800 (eine Woche) (in Sekunden), 0 deaktiviert die Prüfungen und das Rollieren. |
remember_absolute_timeout |
2592000 |
Der Remember-Absolute-Timeout begrenzt, wie lange die persistente Session erneuert werden kann, bis eine erneute Authentifizierung erforderlich ist, z. B. 2592000 (30 Tage) (in Sekunden), 0 deaktiviert die Prüfungen. |
hash_storage_key |
false |
Ob der Storage-Schlüssel gehasht werden soll oder nicht. Bei gehashtem Storage-Schlüssel ist es unmöglich, Daten serverseitig zu entschlüsseln, ohne auch ein Cookie zu haben. Verwenden Sie nil, true oder false. |
hash_subject |
false |
Ob das Subjekt gehasht werden soll oder nicht, wenn store_metadata aktiviert ist, z. B. aus Gründen der personenbezogenen Daten (PII). |
store_metadata |
false |
Ob auch Metadaten von Sessions gespeichert werden sollen, z. B. das Sammeln von Daten über Sessions einer bestimmten Zielgruppe, die zu einem bestimmten Subjekt gehören. |
touch_threshold |
60 |
Die Touch-Schwelle steuert, wie häufig oder selten session:refresh das Cookie berührt, z. B. 60 (eine Minute) (in Sekunden) |
compression_threshold |
1024 |
Die Komprimierungsschwelle steuert, wann die Daten deflate-komprimiert werden, z. B. 1024 (ein Kilobyte) (in Bytes), 0 deaktiviert die Komprimierung. |
bind |
nil |
Binden Sie die Session an Daten, die aus der HTTP-Anfrage oder -Verbindung gewonnen werden. Verwenden Sie ip, scheme, user-agent. Z. B. { "scheme", "user-agent" } berechnet den MAC auch unter Verwendung des HTTP-Anfrage-Scheme und des User-Agent-Headers. |
request_headers |
nil |
Satz von Headern, die an den Upstream gesendet werden sollen. Verwenden Sie id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. Z. B. { "id", "timeout" } setzt die Session-Id- und Session-Timeout-Anfrageheader, wenn set_headers aufgerufen wird. |
response_headers |
nil |
Satz von Headern, die an den Downstream gesendet werden sollen. Verwenden Sie id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. Z. B. { "id", "timeout" } setzt die Session-Id- und Session-Timeout-Antwortheader, wenn set_headers aufgerufen wird. |
storage |
nil |
Der Speicher ist für die Speicherung der Session-Daten verantwortlich. Verwenden Sie nil oder "cookie" (Daten werden im Cookie gespeichert), "dshm", "file", "memcached", "mysql", "postgres", "redis" oder "shm", oder geben Sie einen Namen eines benutzerdefinierten Moduls an ("custom-storage"), oder eine table, die das Session-Speicher-Interface implementiert. |
revocation |
nil |
Speicher, der für Cookie-Session-Widerrufsdatensätze verwendet wird. Verwenden Sie nil oder false zum Deaktivieren, einen Speichernamen wie "shm", "redis", "mysql" oder "postgres", einen benutzerdefinierten Speichermodulnamen oder eine Speicher-table mit set/get-Methoden. |
revocation_fail_mode |
"open" |
Verhalten, wenn der Widerrufsspeicher nicht erreichbar ist. Verwenden Sie "open" (als nicht widerrufen behandeln) oder "closed" (Session ablehnen). |
dshm |
nil |
Konfiguration für den DSHM-Speicher, z. B. { prefix = "sessions" } (siehe unten) |
file |
nil |
Konfiguration für den Dateispeicher, z. B. { path = "/tmp", suffix = "session" } (siehe unten) |
memcached |
nil |
Konfiguration für den Memcached-Speicher, z. B. { prefix = "sessions" } (siehe unten) |
mysql |
nil |
Konfiguration für den MySQL / MariaDB-Speicher, z. B. { database = "sessions" } (siehe unten) |
postgres |
nil |
Konfiguration für den Postgres-Speicher, z. B. { database = "sessions" } (siehe unten) |
redis |
nil |
Konfiguration für Redis / Redis Sentinel / Redis Cluster-Speicher, z. B. { prefix = "sessions" } (siehe unten) |
shm |
nil |
Konfiguration für den Shared-Memory-Speicher, z. B. { zone = "sessions" } |
["custom-storage"] |
nil |
Konfiguration für benutzerdefinierten Speicher (geladen mit require "custom-storage"). |
Cookie-Speicher-Konfiguration
Beim Speichern von Daten im Cookie ist keine zusätzliche Konfiguration erforderlich.
Setzen Sie einfach storage auf nil oder "cookie".
Session-Widerruf-Konfiguration
Cookie- (zustandslose) Sessions sind in sich geschlossen: Einmal ausgestellt, bleibt ein Cookie bis zu seinem Ablauf gemäß den konfigurierten Timeouts gültig. Der Widerruf (revocation) fügt eine optionale, speichergestützte Denylist hinzu, sodass zerstörte Sessions sofort abgelehnt werden, ohne auf den Ablauf des Cookies warten zu müssen.
Der Widerruf ist nur verfügbar, wenn die Session-Daten im Cookie gespeichert werden
(storage ist nil oder "cookie"). Wählen Sie das Backend explizit mit
revocation = "dshm", "file", "memcached", "mysql", "postgres",
"redis" oder "shm" aus. Das Backend verwendet seinen normalen Konfigurationsabschnitt und
denselben Speicher-set/get-Vertrag, der für Session-Daten verwendet wird. Benutzerdefinierte
Speichermodulnamen und vorgefertigte Speichertabellen werden ebenfalls unterstützt. Das Setzen von
revocation = false oder das Weglassen deaktiviert den Widerruf.
Bei jedem session:open prüft die Bibliothek, ob die Session-Kennung
widerrufen wurde. Bei session:destroy wird die Kennung in den ausgewählten
Speicher mit einer TTL geschrieben, die der verbleibenden Session-Lebensdauer entspricht (Rolling- und
Absolute-Timeouts). Die Widerrufsmarkierung ist ein leichtgewichtiger Sentinel; es wird keine
Session-Nutzlast gespeichert.
Verwenden Sie revocation_fail_mode, um das Verhalten zu steuern, wenn der Speicher nicht verfügbar ist:
"open"(Standard): Eine Warnung protokollieren und die Session als nicht widerrufen behandeln. Das Zerstören löscht das Cookie trotzdem, auch wenn das Schreiben des Widerrufs fehlschlägt."closed": Das Öffnen oder Zerstören der Session ablehnen.
Der Widerruf gilt für session:destroy (und session:logout, wenn es die
letzte Zielgruppe zerstört). Er widerruft nicht die vorherige Session-Kennung bei
session:save (Session-Rotation) oder teilweisem session:logout (mehrere
Zielgruppen). Nach der Rotation oder dem teilweisen Logout bleibt das vorherige Cookie
bis zum Ablauf seiner stale_ttl oder seiner Timeouts verwendbar.
Beispiele:
-- Redis-Denylist
require("resty.session").init({
storage = "cookie",
revocation = "redis",
redis = {
host = "127.0.0.1",
password = "secret",
prefix = "sessions",
},
})
-- Shared-Memory-Denylist
require("resty.session").init({
storage = "cookie",
revocation = "shm",
shm = {
zone = "sessions",
prefix = "revocations",
},
})
-- MySQL-Denylist
require("resty.session").init({
storage = "cookie",
revocation = "mysql",
mysql = {
host = "127.0.0.1",
database = "sessions",
username = "session",
password = "secret",
},
})
Das gleiche Muster funktioniert für "dshm", "file", "memcached" und "postgres".
DSHM-Speicher-Konfiguration
Mit dem DSHM-Speicher können Sie die folgenden Einstellungen verwenden (setzen Sie storage auf "dshm"):
| Option | Standard | Beschreibung |
|---|---|---|
prefix |
nil |
Das Präfix für die in DSHM gespeicherten Schlüssel. |
suffix |
nil |
Das Suffix für die in DSHM gespeicherten Schlüssel. |
host |
"127.0.0.1" |
Der Host, zu dem eine Verbindung hergestellt wird. |
port |
4321 |
Der Port, zu dem eine Verbindung hergestellt wird. |
connect_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der connect-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
send_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der send-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
read_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der receive-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
keepalive_timeout |
nil |
Steuert die maximale Standard-Idle-Zeit der Verbindungen im Verbindungspool. |
pool |
nil |
Ein benutzerdefinierter Name für den verwendeten Verbindungspool. |
pool_size |
nil |
Die Größe des Verbindungspools. |
backlog |
nil |
Eine Warteschlangengröße, die verwendet wird, wenn der Verbindungspool voll ist (konfiguriert mit pool_size). |
ssl |
nil |
SSL aktivieren. |
ssl_verify |
nil |
Serverzertifikat verifizieren. |
server_name |
nil |
Der Servername für die neue TLS-Erweiterung Server Name Indication (SNI). |
Bitte lesen Sie ngx-distributed-shm, um die notwendigen Abhängigkeiten zu installieren.
Dateispeicher-Konfiguration
Mit dem Dateispeicher können Sie die folgenden Einstellungen verwenden (setzen Sie storage auf "file"):
| Option | Standard | Beschreibung |
|---|---|---|
prefix |
nil |
Dateipräfix für die Session-Datei. |
suffix |
nil |
Dateisuffix (oder Erweiterung ohne .) für die Session-Datei. |
pool |
nil |
Name des Thread-Pools, unter dem das Schreiben von Dateien erfolgt (nur unter Linux verfügbar). |
path |
(tmp-Verzeichnis) | Pfad (oder Verzeichnis), unter dem Session-Dateien erstellt werden. |
Die Implementierung erfordert LuaFileSystem, das Sie mit LuaRocks installieren können:
❯ luarocks install LuaFileSystem
Memcached-Speicher-Konfiguration
Mit dem Memcached-Speicher können Sie die folgenden Einstellungen verwenden (setzen Sie storage auf "memcached"):
| Option | Standard | Beschreibung |
|---|---|---|
prefix |
nil |
Präfix für die in Memcached gespeicherten Schlüssel. |
suffix |
nil |
Suffix für die in Memcached gespeicherten Schlüssel. |
host |
127.0.0.1 |
Der Host, zu dem eine Verbindung hergestellt wird. |
port |
11211 |
Der Port, zu dem eine Verbindung hergestellt wird. |
socket |
nil |
Die Socket-Datei, zu der eine Verbindung hergestellt wird. |
connect_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der connect-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
send_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der send-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
read_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der receive-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
keepalive_timeout |
nil |
Steuert die maximale Standard-Idle-Zeit der Verbindungen im Verbindungspool. |
pool |
nil |
Ein benutzerdefinierter Name für den verwendeten Verbindungspool. |
pool_size |
nil |
Die Größe des Verbindungspools. |
backlog |
nil |
Eine Warteschlangengröße, die verwendet wird, wenn der Verbindungspool voll ist (konfiguriert mit pool_size). |
ssl |
false |
SSL aktivieren |
ssl_verify |
nil |
Serverzertifikat verifizieren |
server_name |
nil |
Der Servername für die neue TLS-Erweiterung Server Name Indication (SNI). |
MySQL / MariaDB-Speicher-Konfiguration
Mit dem MySQL / MariaDB-Speicher können Sie die folgenden Einstellungen verwenden (setzen Sie storage auf "mysql"):
| Option | Standard | Beschreibung |
|---|---|---|
host |
"127.0.0.1" |
Der Host, zu dem eine Verbindung hergestellt wird. |
port |
3306 |
Der Port, zu dem eine Verbindung hergestellt wird. |
socket |
nil |
Die Socket-Datei, zu der eine Verbindung hergestellt wird. |
username |
nil |
Der Datenbank-Benutzername für die Authentifizierung. |
password |
nil |
Passwort für die Authentifizierung, kann je nach Serverkonfiguration erforderlich sein. |
charset |
"ascii" |
Der Zeichensatz, der auf der MySQL-Verbindung verwendet wird. |
database |
nil |
Der Name der Datenbank, zu der eine Verbindung hergestellt wird. |
table_name |
"sessions" |
Name der Datenbanktabelle, in der Session-Daten gespeichert werden. |
table_name_meta |
"sessions_meta" |
Name der Datenbank-Metadatentabelle, in der Session-Metadaten gespeichert werden. |
max_packet_size |
1048576 |
Die Obergrenze für die Antwortpakete, die vom MySQL-Server gesendet werden (in Bytes). |
connect_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der connect-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
send_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der send-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
read_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der receive-Methode des TCP/Unix-Domain-Socket-Objekts verwendet wird. |
keepalive_timeout |
nil |
Steuert die maximale Standard-Idle-Zeit der Verbindungen im Verbindungspool. |
pool |
nil |
Ein benutzerdefinierter Name für den verwendeten Verbindungspool. |
pool_size |
nil |
Die Größe des Verbindungspools. |
backlog |
nil |
Eine Warteschlangengröße, die verwendet wird, wenn der Verbindungspool voll ist (konfiguriert mit pool_size). |
ssl |
false |
SSL aktivieren. |
ssl_verify |
nil |
Serverzertifikat verifizieren. |
Sie müssen außerdem die folgenden Tabellen in Ihrer Datenbank erstellen:
--
-- Datenbanktabelle, die Session-Daten speichert.
--
CREATE TABLE IF NOT EXISTS sessions (
sid CHAR(43) PRIMARY KEY,
name VARCHAR(255),
data MEDIUMTEXT,
exp DATETIME,
INDEX (exp)
) CHARACTER SET ascii;
--
-- Sessions-Metadatentabelle.
--
-- Diese wird nur benötigt, wenn Sie Session-Metadaten speichern möchten.
--
CREATE TABLE IF NOT EXISTS sessions_meta (
aud VARCHAR(255),
sub VARCHAR(255),
sid CHAR(43),
PRIMARY KEY (aud, sub, sid),
CONSTRAINT FOREIGN KEY (sid) REFERENCES sessions(sid) ON DELETE CASCADE ON UPDATE CASCADE
) CHARACTER SET ascii;
Postgres-Konfiguration
Mit dem Postgres-Speicher können Sie die folgenden Einstellungen verwenden (setzen Sie storage auf "postgres"):
| Option | Standard | Beschreibung |
|---|---|---|
host |
"127.0.0.1" |
Der Host, zu dem eine Verbindung hergestellt wird. |
port |
5432 |
Der Port, zu dem eine Verbindung hergestellt wird. |
application |
5432 |
Legt den Namen der Verbindung fest, wie er in pg_stat_activity angezeigt wird (Standard: "pgmoon"). |
username |
"postgres" |
Der Datenbank-Benutzername für die Authentifizierung. |
password |
nil |
Passwort für die Authentifizierung, kann je nach Serverkonfiguration erforderlich sein. |
database |
nil |
Der Name der Datenbank, zu der eine Verbindung hergestellt wird. |
table_name |
"sessions" |
Name der Datenbanktabelle, in der Session-Daten gespeichert werden (kann mit database schema präfixiert sein). |
table_name_meta |
"sessions_meta" |
Name der Datenbank-Metadatentabelle, in der Session-Metadaten gespeichert werden (kann mit database schema präfixiert sein). |
connect_timeout |
nil |
Steuert den Standard-Timeout-Wert, der in der connect-Methode des |