企業(yè)做網(wǎng)站建設(shè)鎮(zhèn)江網(wǎng)站建設(shè)
配置nginx以成功代理websocket
在使用socket.io的時(shí)候遇到這樣一個(gè)問題:websocket接收的消息的順序錯(cuò)位了,然后看了一下瀏覽器的console的報(bào)錯(cuò),提示連接到ws失敗,然后在瀏覽器的開發(fā)者工具的網(wǎng)絡(luò)中看了一下ws對(duì)應(yīng)的消息里面報(bào)錯(cuò):Error during WebSocket handshake: Unexpected response code: 200
查了一下發(fā)現(xiàn)是nginx沒有配置的問題。
相關(guān)的類似的問題:
https://github.com/websockets/ws/issues/979
nginx官方文檔提到的解決方法:
WebSocket proxying
需要注意的是:
location /chat/socket.io {proxy_pass http://backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
}
這里的backend就是ip地址或者域名,不需要加后綴/chat/socket.io。