Docker 如何使用nginx和SSL代理通过Uvicorn或Daphne代理WSGI和ASGI?

Docker 如何使用nginx和SSL代理通过Uvicorn或Daphne代理WSGI和ASGI?,docker,nginx,wsgi,lets-encrypt,asgi,Docker,Nginx,Wsgi,Lets Encrypt,Asgi,我有一个使用Django频道(websockets)的小项目,它在本地运行良好。我已使用letsencrypt companion containerdocker映像将SSL添加到基于docker的部署中,该映像公开443,处理所有SSL,然后将请求/响应vi端口80导入我的A/WSGI适配器(uvicorn或daphne) 在SSL下,我的客户端代码在JS控制台中出现以下错误: `WebSocket connection to 'wss://my_server.com/ws/echo/' fa

我有一个使用Django频道(websockets)的小项目,它在本地运行良好。我已使用
letsencrypt companion container
docker映像将SSL添加到基于docker的部署中,该映像公开443,处理所有SSL,然后将请求/响应vi端口80导入我的A/WSGI适配器(uvicorn或daphne)

在SSL下,我的客户端代码在JS控制台中出现以下错误:

`WebSocket connection to 'wss://my_server.com/ws/echo/' failed: Error during WebSocket handshake: Unexpected response code: 404`
我不清楚为什么。我该怎么做

这是我的nginx.conf,如果有帮助的话:

upstream wsgi {
    server web:8000;
}

upstream asgi {
    server web:8000;
}

server {
    listen 0.0.0.0:80;

    location / {
        proxy_pass http://wsgi;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location /ws {
        proxy_pass ​http://asgi;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }

    location /staticfiles/ {
        alias /home/app/web/staticfiles/;
    }
}