相关疑难解决方法(0)

nginx websocket反向代理配置

嗨,我正在尝试将nginx配置为websockets的反向代理.我将服务器配置如下:

server {
    listen       80;
    server_name  www.mydomain.com;

    access_log  off;
    #error_log off;

    location / {
        proxy_pass         http://127.0.0.1:8765;
        proxy_redirect     off;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;

        proxy_buffering off;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是我从客户那里得到了如下错误

与'ws://www.application.com/ws'的WebSocket连接失败:WebSocket握手期间出错:'Connection'标头值不是'Upgrade'

我可能正在做一些配置错误但我看不到它.

客户端的请求标头如下

GET ws://www.talkybee.com/ws HTTP/1.1
Pragma: no-cache
Origin: http://www.talkybee.com
Host: www.talkybee.com
Sec-WebSocket-Key: Ol+O1IdaLEsHxxWRBt2oqg==
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Upgrade: websocket
Sec-WebSocket-Extensions: x-webkit-deflate-frame
Cache-Control: no-cache
Connection: Upgrade
Sec-WebSocket-Version: 13
Run Code Online (Sandbox Code Playgroud)

当我进行正常的直接连接时,我的连接正常.这是工作请求标题.

Cache-Control:no-cache
Connection:Upgrade
Host:www.talkybee.com:8765
Origin:http://www.talkybee.com:8765
Pragma:no-cache
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:Y026b/84aUkMxVb0MaKE2A== …
Run Code Online (Sandbox Code Playgroud)

nginx websocket

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×1

websocket ×1