Браузер не может подключиться к серверу Flask-socketio

#nginx #flask #websocket #gunicorn #flask-socketio

Вопрос:

Я размещаю приложение flask в Ubuntu 18.04 LTS с Nginx и Gunicorn. Я использую Flask-SocketIO==5.0.1 для бэкенда и <script src="https://cdn.socket.io/3.1.3/socket.io.min.js"></script> для интерфейса. вот моя конфигурация сервера:

 server {
    server_name toollaza.com;

    location /static {
        alias /home/ubuntu/toollaza/video5/static;
    }

    location / {
        proxy_pass http://localhost:8000;
        include /etc/nginx/proxy_params;
        proxy_redirect off;
    }

    location /socket.io {
        include proxy_params;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://localhost:8000/socket.io;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/toollaza.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/toollaza.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 = toollaza.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name toollaza.com;
    return 404; # managed by Certbot


}
 

Но проблема в том, что браузер не может подключиться к серверу через сокет. Вот некоторые ошибки, которые я обнаружил в консоли браузера:

 Failed to load resource: the server responded with a status of 400 (BAD REQUEST)
WebSocket connection to '<URL>' failed: WebSocket is closed before the connection is established.
22WebSocket connection to '<URL>' failed: WebSocket is closed before the connection is established.
WebSocket connection to 'wss://toollaza.com/socket.io/?EIO=4amp;transport=websocketamp;sid=hqBln0W4o4QOXAtMAAAB' failed: WebSocket is closed before the connection is established.
GET https://toollaza.com/socket.io/?EIO=4amp;transport=pollingamp;t=NjISAoGamp;sid=jDAmKGDdhq6xxiSYAAAC 400 (BAD REQUEST)
polling-xhr.js:206 POST https://toollaza.com/socket.io/?EIO=4amp;transport=pollingamp;t=NjISDgFamp;sid=Qlz9s9KQZ9QTUMDUAAAB 400 (BAD REQUEST)
 

В чем проблема?

Спасибо