Docker 如何使用nginx和SSL代理通过Uvicorn或Daphne代理WSGI和ASGI?
我有一个使用Django频道(websockets)的小项目,它在本地运行良好。我已使用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
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/;
}
}