В настоящее время я развертываю проект django, используя канал 2.x с uwgsi для http-запросов и daphne для фоновых задач.
Дафна работает правильно, как и uwgsi.
Конфигурация для обоих заключается в следующем:
location /stream {
# daphne server running on port 8001 so we set a proxy to that url
proxy_pass http://0.0.0.0:8001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
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-Host $server_name;
}
# These requests are handled by uwsgi
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/project/socket;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Make the following two variables accessible to the application:
uwsgi_param SSL_CLIENT_VERIFY $ssl_client_verify;
uwsgi_param SSL_CLIENT_RAW_CERT $ssl_client_raw_cert;
}
Всем фоновым рабочим предшествует / stream . Все конечные точки защищены. При входе в систему и доступе к конечным точкам, таким как / api / v1 / resource , он корректно возвращает данные, но при запуске задач через / stream я получаю отказано в разрешении (403). Отлаживая это поведение, я пришел к выводу, что сеансы не сохраняются среди Дафни и Уссги.
Как я могу добиться того, чтобы сессии были разделены между ними?