Ich verwende AWS Elastic Beanstalk mit EC2 Servern hinter einem Elastic Load Balancer (ELB).Django Benutzersitzungen mit deaktivierter AWS Load Balancer Klebrigkeit
Ich habe "sticky sessions" auf dem ELB aktiviert, denn nur so kann ich django Benutzersitzungen richtig funktionieren lassen. In Zeiten mit Spitzenverkehr verursacht dies jedoch Probleme, da der ELB nicht mehr jede eingehende Anfrage gleichmäßig verteilt. Dies überlastet normalerweise 1 Server wie einen Mini-DDOS.
Ich möchte serverseitige Benutzersitzungen verwenden, bei denen Informationen zur Benutzerauthentifizierung in meinem Redis-Cache gespeichert werden. Ich habe versucht Einstellung SESSION_ENGINE
zahlreiche Dinge wie:
SESSION_ENGINE = 'redis_sessions.session'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Dann, wenn ich Sticky Sessions zu deaktivieren, kann ich nicht anmelden, da die Anfragen an verschiedene Server am Ende gehen, wo einige Anfragen authentifiziert werden und andere nicht. Diejenigen, die nicht sind, leiten mich zurück zur Anmeldeseite.
Hier sind einige andere relevante Einstellungen Ich habe:
INSTALLED_APPS = (
...,
'django.contrib.sessions',
...,
)
MIDDLEWARE_CLASSES = (
...,
'djangosecure.middleware.SecurityMiddleware',
...,
'django.contrib.sessions.middleware.SessionMiddleware',
...,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
...,
)
Was mache ich falsch? Danke vielmals.