nginx 配置 websocket 的教程
    location /downloads {
        alias /data/wwwroot/downloads;
        autoindex on;
    }
    location = /ws {
        if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
            return 503;
        }
        # ngnix doc
        ## https://nginx.org/en/docs/http/websocket.html
        ## https://www.nginx.com/blog/websocket-nginx/
        proxy_pass http://127.0.0.1:31988;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        # proxy_set_header Connection $connection_upgrade; # 升级 http1.1 到 websocket 协议
        proxy_set_header Host $host;
        proxy_set_header Connection "Upgrade";
        proxy_redirect off;
        # Show real IP in access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }