質問: require('socket.io').listen(app); app.listen(80); ``` そのためには、httpサーバとソケットサーバの両方を同じプロセスにする必要があります。 ある程度のサイズのWebサイトを作っている場合は、2つのサーバーを分離したいが、同じドメインとポートを使用することができます。どのようにして1つは行きますか?
回答: まず、質問を明確にするのを手伝ってください。 あなたがしたいことは、NodeHTTP WebサーバーとSocketIO Clientの両方を別々のマシン上で実行していても、同じドメイン(非サブドメイン)経由でアクセスできることです。 これは非常に難しく、扱いにくくなるでしょう。あなたはそのボックスに複数のIPを要求し、それに応じてリクエストをマップするためにhaproxyを使用します *ロードバランシングの場合は、スタックについての情報が必要です。* 私は、ラウンドロビンを介してロードバランシングされているいくつかのサーバー(5インファクト)を持っているので、私はこれを私のDNSレコードに持っています ``` relay.domain.com: { A : 10.0.0.1, A : 10.0.0.2, A : 10.0.0.3, A : 10.0.0.4 } ``` また、 *master.domain.com(10.0.0.0)*にマスターサーバーがあり、socket.ioクライアントからのすべての接続は *relay.domain.com* にあり、接続は4台のサーバーに負荷分散されます。 4つのサーバーのそれぞれがポート80上の接続をリストしていますが、すべてがマスターサーバーへの *socket.io-client* 接続を作成し、すべての要求をマスターに送信すると、そのデータをアナウンスする場合は、そのデータをすべてのリレーサーバーに送り返し、すべてのリレーサーバーがクライアントリストをアナウンスします。