Веб-сервер с NGINX, Gunicorn (с рабочими > 1) и Djagno не может сохранить JWT в cookie на стороне сервера

У меня есть WSGI Django приложение, с Gunicorn до него и Nginx в качестве веб-сервера. Django-приложение представляет собой Stateless DRF API.

Связанные с Django конфиги

REST_AUTH = {
'USE_JWT': True,
'JWT_AUTH_COOKIE': 'wird-jwt-auth',
'JWT_AUTH_REFRESH_COOKIE': 'wird-jwt-refresh',
'JWT_AUTH_RETURN_EXPIRATION': True,
'JWT_AUTH_HTTPONLY': False,
"SESSION_LOGIN": False,
"USER_DETAILS_SERIALIZER": "core.serializers.PersonSerializer",
"PASSWORD_RESET_SERIALIZER": "core.util_classes.PasswordResetSerializer"
}
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
SECURE_HSTS_SECONDS = 2_592_000
SECURE_REFERRER_POLICY = "strict-origin-when-cross-origin"
# Application definition

SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
X_FRAME_OPTIONS = 'DENY'
PERMISSIONS_POLICY = {"fullscreen": "*", }

INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
"django.contrib.postgres",
'member_panel.apps.StudentConfig',
'admin_panel.apps.AdminPanelConfig',
'core.apps.CoreConfig',
'rest_framework',
"rest_framework.authtoken",
'django.contrib.sites',
'allauth',
'allauth.account',
'dj_rest_auth.registration',
'django_filters',
'corsheaders',
'polymorphic',
'drf_yasg',
"cachalot",
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',  
    'django.middleware.security.SecurityMiddleware',  
    'whitenoise.middleware.WhiteNoiseMiddleware', 
    'django.middleware.common.CommonMiddleware',  
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    "django_permissions_policy.PermissionsPolicyMiddleware", 
    'django.middleware.locale.LocaleMiddleware',  
    'allauth.account.middleware.AccountMiddleware',  
]

Конфиги Nginx

upstream app {
    server localhost:8200;  
}

server {
    server_name .;
    location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://app;  
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_redirect off;
}

 location /static/ {
    alias .;
    try_files $uri $uri/ =404;
}

location /media/ {
    alias .;
    try_files $uri $uri/ =404;
}


listen 443 ssl; # managed by Certbot
# ssl files 

}

Когда рабочих у Gunicorn >1, JWT-токен, который я сохраняю на стороне клиента, исчезает после первого обновления. Когда workers=1, все нормально, без изменения других конфигураций.

В чем может быть проблема?

Вернуться на верх