私は完全に js の HTML5 キャンバス ゲームに取り組んでおり、それを「リアルタイム」にしたいと考えています。私の調査に基づいて、node.jsはエキサイティングな見通しであることがわかったので、socket.io、expressなどを使用してubuntu 12 Webサーバーで構成しました.
私はプログラマーですが、ウェブサーバー バックエンドの世界では新人にすぎません。そのため、あなたの助けを求めています。システム モデル全体について混乱しており、それがどのように機能しているかを明確にしたいと考えています。たぶん、私は短時間であまりにも多くの記事を読みました.
まず、Web サーバーで nginx 1.2.x を実行します。私が知っているように、nginxはrquestsを処理しており、ポート80(私にとって)専用で、httpリクエストを処理しています(php-fpmを使用してphpを処理しています)。次に、ポート 8080 で nodejs サーバーを正常に実行しています。nginx は websocket をサポートしていないため、websocket を介した接続が必要です (その性質とプロトコルのため)。
http://mydomain.tld:8080 にアクセスすると、これはノード サーバーを経由して nginx をオフにしますか? この場合、接続は websocket を介して行うことができ、xhr などにフォールバックすることはできません (スケーラビリティーのために必要ありません)。
次に、 http://mydomain.tld/game/ で同じ効果を得るにはどうすればよいですか? nginx.conf のリクエストをノードサーバーにプロキシするだけですか? お気に入り:
# if a file does not exist in the specified root and nothing else is definded, we want to serve the request via node.js
try_files $uri @nodejs;
location @nodejs
{
proxy_pass 127.0.0.1:8080;
break;
}
から: https://stackoverflow.com/a/14025374/2039342
また、nginx を介した Websocket 通信が必要な場合に、これが適切なプロキシの回避策であるとしたら? 通常の php サイトとその中に socket.io 接続が必要な場合に行います。この時点で、ポート 80 でトラフィックを実行し、標準のリクエストと Websocket トラフィックを分離することが重要であると推測しています。私の場合、最も簡単な解決策は何ですか?
http://www.exratione.com/2012/07/proxying-websocket-traffic-for-nodejs-the-present-state-of-play/この記事で、nginx 1.3 まで HAProxy が私にとって最適であることがわかりました。 、 それは...ですか?
私の質問が少し混乱していることは知っていますが、正確なテクニックを理解するのに苦労しています。ヒントをください | 読むべき記事 | 出発点 | 基本構成。
PS .: ここで関連するトピックのほとんどを読みました。
Ps2.: ばかげないように: 私はすでにこのゲームを red5 (Java ベースのフラッシュ サーバー) + フラッシュで作成したので、適切な現在のテクノロジで再検討して公開したいと思います。