2012-06-08 3 views
7

"www"하위 도메인에서 액세스 할 수있는 lighttpd에서 호스팅되는 웹 사이트를 운영하고 있습니다. 또한 node.js 및 socket.io로 만든 포트 8124에서 수신하는 채팅 서버가 있습니다.lighttpd로 포트 80에서 websocket 트래픽 리디렉션

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

을에 :

나는 그래서 내가 mod_proxy를 활성화 lighttpd.conf가 내가 추가 한 모든 클라이언트 트래픽이 포트 8124.에 "채팅"하위 도메인에 대한 모든 요청을 리디렉션하여, 포트 80에서 일하려면 나는 웹 소켓에 연결할 때 클라이언트,

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:: 

그러나 브라우저에 오류 제공 : 내가 말했듯이, 나는 모든 클라이언트 트래픽을 싶습니다

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

그러나 :

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

, 모든 I 포트 (8124)에 직접 연결하는 경우 제대로 작동을 80 번 포트에있어. 가능하니?

답변

7

mod_proxy는 웹 소켓과 호환되지 않는 것으로 알려져 있습니다.

HAProxy과 호환됩니다 (직접 테스트하지는 않았지만 여기에 article on its configuration for websockets이 있습니다).

+3

방금 ​​Haproxy를 설치했으며 완벽하게 작동합니다. 감사합니다. – lortabac

+0

당신을 진심으로 환영합니다. 그리고 내가 그것을 테스트하지 않았고 (내가 말했듯이) 그것을 기대하고 있었기 때문에 확인에 감사드립니다. –

+0

안녕하세요! 현재 lighttpd와 socket.io가 작동하는 websocket을 만들고 있는데 문제가 있습니다. 그것은'ws : // /socket.io/1/ /: '연결 헤더가 없습니다'에 연결할 수없는 것 같습니다. lighttp mod_proxy 대신에 HAProxy가 작동하는 conf 파일은 무엇입니까? 많은 감사합니다! – D4V1D

관련 문제