首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websockets,em-websocket & HAProxy 502错误

Websockets,em-websocket & HAProxy 502错误
EN

Stack Overflow用户
提问于 2012-06-11 13:14:21
回答 2查看 1.3K关注 0票数 1

我正尝试在端口80上运行and服务器和websocket服务器。为此,我使用HAProxy通过以下配置来路由连接:

代码语言:javascript
复制
global
    maxconn     4096 # Total Max Connections. This is dependent on ulimit
    nbproc      1
    ulimit-n        65536

defaults
    mode      http

frontend all 0.0.0.0:80
    timeout client 86400000
    acl is_websocket hdr_beg(host) -i live
    acl is_websocket hdr(Upgrade) -i WebSocket

    default_backend www_backend

    use_backend production_socket_backend if is_websocket

backend www_backend

    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout server 30000
    timeout connect 4000
    server appserver 127.0.0.1:81 weight 1 maxconn 1024

backend production_socket_backend
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    timeout queue 5000
    timeout server 86400000
    timeout connect 86400000
    server appserver 127.0.0.1:8083 weight 1 maxconn 1024

我正在使用Google Chrome进行测试。在一些机器上我连接得很好,在另一些机器上它会给我一个502错误,em-websocket记录了这个错误:

代码语言:javascript
复制
#<EventMachine::WebSocket::HandshakeError: Connection and Upgrade headers required>

如果我停止运行代理,并在端口80上运行web套接字服务器,它可以正常工作,这对我来说表明问题出在代理上。我在某处读到,在处理websockets时,HAProxy不应该运行在http模式下,因为升级包不是有效的HTTP,这是否与我看到的问题有关?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-02 08:36:17

我现在使用端口443。将来,我将在单独的服务器上运行web套接字,以解决此问题。

票数 1
EN

Stack Overflow用户

发布于 2012-06-12 21:21:22

是,请尝试更改为tcp模式。

我不确定使用头检查转发内容是否有效。我把我的插座放在一个专用的端口上。

代码语言:javascript
复制
listen websockets
    mode tcp
    bind *:8000
    balance source
    timeout queue 5000
    timeout server 86400000
    timeout connect 86400000
    server thin_web1 x.x.x.x:8000

如果您有多个服务器来保持与同一服务器的套接字连接,则源平衡非常重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10974753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档