0

現在、Apache リバース プロキシの背後にあるいくつかのアプリを実行しています。これは、複数のサーバーに対して 1 つのパブリック IP アドレスを持っているためです。VirtualHosts を使用して、適切なアプリを適切なサービスにプロキシします。例えば:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName nagios.myoffice.com

    ProxyPass /  http://nagios.myoffice.com/
    ProxyPassReverse / http://nagios.myoffice.com/
</VirtualHost>

これは、PHP、Django、Rails などのアプリでは問題なく機能しますが、Node.js で実験を開始したいと考えています。

Apache プロキシの背後にあるアプリは、直接アクセスする場合ほど高い負荷を処理できないことに既に気付きました。おそらく、Apache の設定が理想的ではないためです (同時接続が十分でない可能性があります)。

node.js で試してみたい最もクールな機能の 1 つは、socket.io 機能です。これにより、パフォーマンスの問題が実際に露呈するのではないかと心配しています。特に、私が理解しているように、socket.io は貴重な数少ない Apache 接続の 1 つを常に開いたままにしておくためです。

この状況で使用できる、複数の仮想ホストを使用でき、node.js アプリのパフォーマンスを過度に抑制したり、socket.io の実験を妨げたりしないリバース プロキシ サーバーを提案できますか?

4

2 に答える 2

1

node-http-proxy をお勧めします。非常に活発なコミュニティであり、本番環境で証明されています。

特徴

  • 着信 http.ServerRequest ストリームをリバース プロキシする
  • node.js で CommonJS モジュールとして使用できます
  • イベント バッファリングを使用して、プロキシされたリクエストでのアプリケーションのレイテンシをサポートします
  • シンプルな JSON ベースの構成に基づくリバースまたはフォワード プロキシ
  • WebSocketをサポート
  • HTTPSをサポート
  • 最小限のリクエスト オーバーヘッドとレイテンシ
  • 機能テストの完全なスイート
  • @ [nodejitsu.com][0] での本番環境での使用により強化されました。
  • すべてJavascriptで書かれています
  • 使いやすい API

次のコマンドを使用してインストールします

npm install http-proxy

GithubページとNPMページはこちら

于 2012-07-12T17:54:00.160 に答える
0

これは新しいテクノロジーを導入しますが、nginx をフロントエンドとして使用することをお勧めします。nginx は c で書かれた高速で強化されたサーバーで、リバース プロキシが非常に優れています。ノードと同様に、イベント駆動型で非同期です。

nginx を使用して、実行中のさまざまな nodejs サーバーにリクエストを転送できます。負荷分散、または URL に応じて (書き換えなどを実行できるため)。

于 2012-07-12T19:59:49.513 に答える