2

次の構成で、HAProxyを使用してWebSocketをセットアップしようとしています:httpトラフィック-> haproxy->varnish->nginx->ノードwsトラフィック->haproxy->ノード

1つのサブドメインがSSLを強制しているため、haproxyはhttpトラフィックをhttpsにリダイレクトします。(そしてwsからwss)

1つの問題を除いて、すべてが期待どおりに機能しています。新しいソケットは1つだけではなく、常に作成されています(Chromeのデバッグコンソールで数秒ごとに作成されていることがわかります)

Varnishを使用してWebsocketパイプを実行したとき、この問題は発生しませんでした。

どうすればこれを修正できますか?

global
  daemon

defaults
  mode  http

frontend insecure
 # HTTP
  bind :80

  timeout client 5000

  # acl
  acl is_console hdr_end(host) -i console.mydomain.com
  acl is_client hdr_end(host) -i www.mydomain.com
  acl is_websocket hdr(Upgrade) -i WebSocket
  acl is_websocket hdr_beg(Host) -i ws

  # Redirect all HTTP traffic to HTTPS
  redirect location https://console.mydomain.com if is_console

  use_backend node_console if is_console is_websocket
  use_backend node_client if is_client is_websocket
  default_backend varnish

frontend secure
 # HTTPS
  bind :443 ssl crt /etc/ssl/console.mydomain.com.pem

  timeout client 5000

  # acl
  acl is_console hdr_end(host) -i console.mydomain.com
  acl is_client hdr_end(host) -i www.mydomain.com
  acl is_websocket hdr(Upgrade) -i WebSocket
  acl is_websocket hdr_beg(Host) -i ws

  use_backend dealspot_console if is_console is_websocket
  use_backend dealspot_client if is_client is_websocket
  default_backend varnish

backend varnish
  balance leastconn
  option forwardfor
  timeout server 5000
  timeout connect 4000
  server varnish1 127.0.0.1:6081

backend node_client
  balance leastconn
  option forwardfor
  timeout queue 5000
  timeout server 5000
  timeout connect 5000
  server client_node1 127.0.0.1:3000

backend node_console
  balance leastconn
  option forwardfor
  timeout queue 5000
  timeout server 5000
  timeout connect 5000
  server console_node1 127.0.0.1:3001
4

1 に答える 1

1

バックエンドで「トンネルタイムアウト」を1日に設定することで、なんとか修正できました

于 2013-01-21T07:44:43.370 に答える