Apache反向代理对WebSocket“不支持”的解决方案

问题

之前写的即时通信部分上传到服务器上之后,发现 WebSocket 连接不上了。

妈蛋=。=

于是百度了半天,看到一个方法是配置 Apache,增加 mod_pythonmod_pywebsocket 扩展巴拉巴拉。

mod_python 在我最开始配置 Apache 支持 PHPPyhton 的时候就发现好像不太好用,所以就没有用。

这次简单地尝试了一下还是有问题,所以就算了。

问题分析

可能因为我是通过 apache 代理,将域名解析到指定端口来实现 tornado 应用的上线,而 WebSocket 在握手的时候请求直接发送到apacheapache 代理的时候没法将WebSocket 握手请求传递给 tornado 应用,结果就是握手失败

解决方案:

html 文件里的ws 服务器地址修改为服务器 IP地址,越过 apache 代理的部分,直接跟 tornado 应用握手。

就是这样:

xxx.html

    ws = new WebSocket("ws://xxx.xxx.xx.xxx:8008/soc")
    ws = new WebSocket("ws://www.mysite.com/soc")

以上。

你可能感兴趣的:(Apache反向代理对WebSocket“不支持”的解决方案)