Websocket не работает с django при развертывании

Надеюсь, что вы сможете мне помочь. Я развернул свое django приложение на сервере ubuntu 20.04 с nginx и gunicorn. Вот мои настройки:

gunicorn.service

[Unit] 
Description=gunicorn daemon 
Requires=gunicorn.socket 
After=network.target 

[Service] 
User=ubuntu 
Group=www-data 
WorkingDirectory=/var/www/PlugSell
ExecStart=/var/www/PlugSell/env/bin/gunicorn --access-logfile - --error-logfile - -k uvicorn.workers.UvicornWorker --workers 3 --bind unix:/run/gunicorn.sock  minible.asgi:application 

[Install]
WantedBy=multi-user.target

app nginx conf

server { 
    
    server_name 3.73.206.145 127.0.0.1 sell.plug-shop.com; 
    
    location = /favicon.ico { 
        access_log off; log_not_found off; 
    } 
    
    location /static/ { 
        root /var/www/PlugSell;
    }
    
    location / { 
        include proxy_params; 
        proxy_pass http://unix:/run/gunicorn.sock;
    }
    
    location /ws/ {
        proxy_set_header Host               $http_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;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_set_header X-Url-Scheme       $scheme;
        proxy_redirect off;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

        proxy_pass http://unix:/run/gunicorn.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/sell.plug-shop.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/sell.plug-shop.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = sell.plug-shop.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

 
    listen 80; 
    
    server_name 3.73.206.145 127.0.0.1 sell.plug-shop.com;
    return 404; # managed by Certbot


}

в settings.py у меня есть

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("127.0.0.1", 6379)],
        },
    },
}

и в моем asgi.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'minible.settings')
django.setup()

application = ProtocolTypeRouter({
    "http": get_asgi_application(),
    "websocket": AuthMiddlewareStack(
        URLRouter(
            [
                path('ws/notification/',
                  consumer.NotificationConsumer.as_asgi())
            ]
        )
    )
})

Redis установлен и отлично работает (привязка на 0.0.0.0)

Все работает отлично, но вебсокет не работает.

Я пытаюсь подключиться к websocket через "wss://sell.plug-shop.com/ws/notification/", но соединение всегда обрывается. В лог-файле nginx нет никакой информации об ошибке подключения к websocket

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