Перенаправление трафика веб-сокета на порт 80 с помощью lighttpd

У меня есть веб-сайт, размещенный на lighttpd, доступный по поддомену «www». У меня также есть чат-сервер, прослушивающий порт 8124, созданный с помощью node.js и socket.io.

Я хочу, чтобы весь клиентский трафик проходил через порт 80, перенаправляя все запросы к поддомену «chat» на порт 8124. Поэтому я включил мод _прокси и в lighttpd.conf добавил:

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

На клиенте, когда я подключаюсь к веб-сокету,

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. Возможно ли это?

7
задан lortabac 8 June 2012 в 10:39
поделиться