【发布时间】:2014-06-24 14:22:18
【问题描述】:
我用tornado开发一个websocket服务器,我用nginx委托python服务器,nginx配置一个server_name,我的服务器在中国,我从中国连接websocket服务器,它工作正常,我从连接它澳洲用Wifi,也可以,但是我从澳洲用3G连接,就不行了,请求头错过升级节点,为什么会这样?
【问题讨论】:
标签: nginx websocket http-headers upgrade
我用tornado开发一个websocket服务器,我用nginx委托python服务器,nginx配置一个server_name,我的服务器在中国,我从中国连接websocket服务器,它工作正常,我从连接它澳洲用Wifi,也可以,但是我从澳洲用3G连接,就不行了,请求头错过升级节点,为什么会这样?
【问题讨论】:
标签: nginx websocket http-headers upgrade
因为在 3G 连接中间有一个代理。
“升级”标头被标记为连接标头(“连接:升级”),这意味着必须在下一跳中删除该标头。所以代理会删除该标头。
您应该使用安全的 WebSocket (wss://) 以避免代理弄乱您的标头。
How HTML5 Web Sockets Interact With Proxy Servers
干杯。
【讨论】: