nginx配置wss 的websocket失败。
最开始写了一个基于ws的websocket部署到网站上,因为我是自己写的对websocke客户端握手头消息解析,所以对Sec-WebSocket-Key进行了提取并且手动用SHA-1进行了编码回应。这是可以成功的。
但是由于网站访问是https的,所以必须用wss连接。
然而,利用linux服务器A上的nginx转发wss请求到我的windows服务器B后,如果不将linux的443端口所有请求转发,而是指定一个地址。 比如
location /QA/{
proxy_pass http://120.76.XX.XXX:51021;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
我的windows服务器收不到任何消息。
如果设置linux的443端口使用ssl认证后将所有消息转发,我的windows服务器能收到消息,但是头消息中并没有Sec-WebSocket-Key:了。也就不能给客户端回应了。
前端也一直报“failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED”的错。
应该怎么办?