我得到
Error during WebSocket handshake: Unexpected response code: 502
当尝试连接到wss://my.domain.com/ws/
时daphne入口点:
daphne -e ssl:443:privateKey=key.pem:certKey=certKey.pem myapp.asgi:application
我的nginx conf:
upstream channels-backend {
server 0.0.0.0:8001;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name servername;
server_tokens off;
ssl_certificate certKey.pem;
ssl_certificate_key key.pem;
...
location /ws/ {
rewrite ^(.*)$ $1 break;
proxy_pass http://channels-backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在我的前端:
let wsStart = 'ws://';
if (loc.protocol === 'https:') {
wsStart = 'wss://';
}
const endpoint = '${wsStart}my.domain.com/ws/';
const socket = new WebSocket(endpoint);
如果在我的daphne入口点中仅添加-b 0.0.0.0:8001可以正常工作并通过ws://进行连接,但是我需要通过wss://
进行连接有什么想法吗?