並列 Apache インストールで Socket.io を動作させるためのすべての可能なソリューションをテストするために、ポート 80 でリッスンする HAproxy をインストールしましたio.server.com
。
サーバーには 2 つの IP が接続されています。1 つは SSL 用で、もう 1 つはすべての非 SSL サブドメイン用です。io.server.com
そのNON-SSL IPアドレスを指すサブドメインを作成しました。ただし、次の場合に発生します。
- にアクセスすると
regular_http.server.com
、Apache がそのサブドメインを処理します (OK) - にアクセスすると
io.server.com
、「Socket.io へようこそ」という結果が表示されます (OK) - 次にアクセスすると
regular_http.example.com
、「Socket.io へようこそ」という結果が表示されます
HAproxy が Socket.io に行くように構成されていないサブドメインから Socket.io にリクエストを送信するのはなぜですか? はい、2 つのサブドメインは IP を共有していますが、HAproxy は本当に IP 全体を 1 つの下でプロキシしていますか? ホスト名に基づいて ACL を設定することのポイントは何でしょうか?
これが私の構成です:
global
daemon
maxconn 4096
user haproxy
group haproxy
defaults
log global
#this frontend interface receives the incoming http requests
frontend http-in
mode http
bind *:80
timeout client 86400000
#default behavior sends the requests to apache
default_backend www_backend
#when "io.test.tld" is matched, an acl I call arbitrarily
# "websocket" triggers
acl websocket hdr_end(host) -i io.server.com
use_backend node_backend if websocket
ありがとうございました!