2012-06-08 21 views
7

Tengo un sitio web alojado en lighttpd, accesible en el subdominio "www". También tengo un servidor de chat escuchando en el puerto 8124 hecho con node.js y socket.io.Redirigiendo el tráfico de websocket en el puerto 80 con lighttpd

Quiero todo el tráfico de clientes que suceda en el puerto 80, mediante la reorientación de todas las solicitudes para el subdominio "chat" para el puerto 8124. Así Habilité mod_proxy y en lighttpd.conf añadí:

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

Por cliente, cuando me conecto a la WebSocket,

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

me sale el mensaje correcto de 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:: 

Pero el navegador da un error:

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

Por supuesto, todo funciona correctamente si conecto directamente al puerto 8124:

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

Pero, como ya he dicho, me gustaría que todo el tráfico de clientes a estar en el puerto 80. ¿Es posible?

Respuesta

7

Se sabe que mod_proxy no es compatible con websockets.

HAProxy es compatible (no lo he probado, pero aquí hay un article on its configuration for websockets).

+3

Acabo de instalar Haproxy y está funcionando perfectamente. Gracias – lortabac

+0

De nada. Y gracias por la confirmación, ya que no lo había probado (como dije) y estaba deseando hacerlo :) –

+0

¡Hola! Actualmente estoy tratando de hacer websocket con socket.io funciona con lighttpd y estoy enfrentando un problema. Parece que no se puede conectar a 'ws: // /socket.io/1/ /: Falta el encabezado 'Conexión'. ¿Cuál es su archivo conf de HAProxy como dijo que funciona con él (en lugar de lighttp mod_proxy)? ¡Muchas gracias! – D4V1D

Cuestiones relacionadas