V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
madog
V2EX  ›  Node.js

关于node.js 反向代理的问题

  •  
  •   madog · Jan 14, 2013 · 5467 views
    This topic created in 4857 days ago, the information mentioned may be changed or developed.
    我把http://localhost/socket.io/这个地址 代理到8080端口给nodejs处理,
    到http://localhost/socket.io/这步是好的,能显示Welcome to socket.io
    http://localhost/socket.io/socket.io.js 也能找到
    http://localhost/socket.io/1/websocket/ 这步能返回值
    但是到了请求http://localhost/socket.io/1/websocket/ 7C5GwES1ZdxyxuNKvwnZ的时候总是报500错误,
    直接请求http://localhost:8080/socket.io/1/websocket/ 7C5GwES1ZdxyxuNKvwnZ时正常。

    这是什么原因?因该怎么解决?感谢!
    7 replies    1970-01-01 08:00:00 +08:00
    CosWind
        1
    CosWind  
       Jan 15, 2013 via Android
    可以贴一下你的代码么
    Js
        2
    Js  
       Jan 15, 2013
    我记得nginx目前不支持websocket, 要么禁掉socket.io的websocket支持, 要么用haproxy顶前面
    CosWind
        3
    CosWind  
       Jan 15, 2013 via Android
    @Js 人家是nodejs,socket.io
    Js
        4
    Js  
       Jan 15, 2013
    @CosWind 楼主大意是80(反向代理,500)反代socket.io(8080,正常), 难道我理解错了.....
    CosWind
        5
    CosWind  
       Jan 15, 2013 via Android
    @Js 看lz得意思,用nodejs作反向代理,部分成功,部分出错,原因不明,我之前也接触过socket.io,nodejs还是比较熟悉。
    jackyz
        7
    jackyz  
       Jan 15, 2013
    目测楼主是想代理 socket.io 的 ws 协议。目测可能出错。如果是的话,还需要处理 upgrade 事件。可以参照:

    https://github.com/nodejitsu/node-http-proxy/blob/master/lib/node-http-proxy/http-proxy.js#L650

    另外,为啥不直接用 nodejitsu 的 http-proxy 呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2668 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:51 · PVG 10:51 · LAX 19:51 · JFK 22:51
    ♥ Do have faith in what you're doing.