Django каналы Развертывание nginx + uviconr + gunicorn]сокет, похоже, отправляет http запрос
Я использую обратный прокси. Так что настройка https находится где-то в другом месте.
js log
WebSocket connection to 'wss://urls/ws/exchange_rate/USD/' failed
Dockerfile
CMD ["gunicorn", "config.asgi:application", "-k", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000"]
nginx.conf
upstream django {
server django:8000;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# access_log off;
# log_not_found off;
# error_log /var/log/nginx/finance/error.log crit;
location /ws/ {
proxy_pass http://django/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://django/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
localhost test
Нет журнала для сокета и он работает нормально.
gunicorn config.asgi:application -k uvicorn.workers.UvicornWorker
журнал сервера gunicorn
"GET /exchange_rate/USD/ HTTP/1.1" 404
Похоже, что происходит обмен данными по протоколу http. Что я сделал не так?