重定向的WebSocket通信的端口80的lighttpd(Redirecting websocke

2019-06-25 08:31发布

我必须托管在lighttpd的网站,在“www”的子域名进行访问。 我也有一个聊天服务器监听用的Node.js和socket.io做端口8124。

我希望所有客户端的流量发生在端口80,通过重定向所有请求到“聊天”子域名端口8124所以我启用的mod_proxy和lighttpd.conf我说:

$HTTP["host"] == "chat.myserver.com" {
    proxy.server = (
            "" => ((
                    "host" => "78.128.79.192",
                    "port" => "8124"
            ))
    )
}

在客户端,当我连接到的WebSocket,

var socket = io.connect('http://chat.myserver.com');

我从node.js的正确的信息:

debug - client authorized
info  - handshake authorized 6067470561567883577
debug - setting request GET /socket.io/1/websocket/6067470561567883577
debug - set heartbeat interval for client 6067470561567883577
debug - client authorized for 
debug - websocket writing 1::

但浏览器提供了一个错误:

Firefox can't connect to server ws://chat.myserver.com/socket.io/1/websocket/6067470561567883577

当然,一切工作正常,如果我直接连接到端口8124:

var socket = io.connect('http://www.myserver.com:8124');

但是,正如我所说的,我想所有客户端的流量是80端口的是它不可能性?

Answer 1:

mod_proxy的被称为是使用WebSockets不兼容。

HAProxy的是兼容的(我没有测试它自己,但这里是一个关于它的WebSockets配置文章 )。



文章来源: Redirecting websocket traffic on port 80 with lighttpd