Używam AWS Elastic Beanstalk z serwerami EC2 za Elastic Load Balancer (ELB).Sesje użytkownika Django z klejem Load Balancer AWS wyłączone
Mam "klejące sesje" na włączonym ELB, ponieważ jest to jedyny sposób, w jaki można uzyskać sesje użytkowników django, aby działały poprawnie. Jednak w czasie szczytowego natężenia ruchu powoduje to problemy, ponieważ ELB nie rozdziela równomiernie każdego przychodzącego żądania. Zwykle przeciąża 1 serwer jak mini DDOS.
Chciałbym użyć sesji użytkownika po stronie serwera, w których informacje o uwierzytelnianiu użytkownika są przechowywane w pamięci podręcznej Redis. Próbowałem ustawienie SESSION_ENGINE
do wielu rzeczy, takich jak:
SESSION_ENGINE = 'redis_sessions.session'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Następnie po włączeniu sesje lepkie off, nie mogę się zalogować, ponieważ wnioski skończyć się na różnych serwerach, gdzie niektóre żądania są uwierzytelniane i inne nie. Te, które nie są, przekieruj mnie z powrotem na stronę logowania.
Oto kilka innych istotnych ustawienia mam:
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',
...,
)
Co robię źle? Wielkie dzięki.