2012-02-09 22 views
1

私は非常に最近、サーバの状態からプレーヤーの状態を同期させるためにnowjsを使用するマルチプレイヤーブラウザゲームで開発を開始しました。私はサーバー側の開発に慣れていません(私が言っていることの多くは間違っていると言われています)、node.jsがどのように機能するのか理解している間に、別のサーバー技術効率性のためにNGininxやApacheなど)。node.jsでHTTPリクエストをプロキシする値

私がそうするどのようの説明をたくさん見てきたにも関わらず、そうすることは有益であろう、なぜ私はを理解していません。私の現在の計画は、ゲーム自体のウェブサイトと情報をゲーム自体と同じサーバーに置くことです。プロキシノードからの利益があれば、その理由を知りたいと思います。

答えて

1

"別の技術を通じて"と言えば、NGinxやApacheなどの専用のWebサーバーを使用しているとします。

プロダクション環境では、b/cという理由がありますが、アプリケーションが単独で行う必要がないように考慮する必要があります。キャッシング、ドメイン(またはサブドメイン)マッピング、セキュリティ、SSL、ロードバランシング、静的ファイルの提供などがあります。

ウェブサーバーは、あなたのためにすべてのものを処理するために既に構築されているので、実際に処理する必要のあるリクエストのみをアプリケーションに渡すことができます。それらはまた、それらのことを行うために最適化されており、平均的な開発者よりも優れているか、またはよりよく機能します。

希望に役立ちます。

+0

あなたは正しいと仮定していますが、私はApacheのようなものを通して意味します。それを強調するために質問を編集します。私は、Node.jsがそれ自身ですでにうまくいけば、最適化がどこに来るのかなどのファイルを扱うことができると思ったのですか? –

+0

それは確かに対応できます。それは単なる効率の問題です。例として、静的ファイルのレスポンスをキャッシュする場合は、ノードで自分自身でレスポンスを実装する必要があります。ほとんどの専用Webサーバーには、そのための設定があります。 – Paul

+0

クール、クールクールクール。ですから、nowjsから来る一定のトラフィック(TCPであると信じていますか?)は、そのプロキシレイヤーを追加することで減速しませんか? –

3

あなたの質問の文脈では、reverse proxyをnode.jsウェブサーバーの前に実装する利点についての回答を探しているようです。要約すると、リバースプロキシ(実装に依存する)は、箱から出して、以下の機能を提供することができます:

  • 静的コンテンツの
  • キャッシュを負荷分散
  • フェイルオーバー
  • 応答の圧縮(例えば、GZIP)
  • SSLサポート

これらのすべての機能を使用すると、Yに対応する必要はないはずですcross-cutting concernsアプリケーション層/コード。プロキシ内でこれらの機能を実装することで、アプリケーションのコードを開発することに専念でき、Webサーバは、アプリケーションのHTTP要求を処理して、それがうまくいくようにします。

nginxは、リバースプロキシ/ノード構成でよく使われるようですが、modules referenceを見ると、プロキシが提供できる機能を理解する必要があります。

+0

リンクと用語をありがとう、nginxは私がガイドなどで最もよく見てきたものです。すぐに使用できる機能は、サーバーの初心者にとって非常に便利です! –

0

ここで追加していないもう1つの問題は、フロントエンドのプロキシを使用している場合、メンテナンスのためにサービスを停止する(または再起動する)必要があるときに、nginxが "YourCompanyName is現在メンテナンス中 "のページが表示され、より快適なユーザーエクスペリエンスが実現します。

関連する問題