6

node-http-proxyプロキシ サーバーを使用して、ポート 80 のプロキシ サーバーからポート 8000 のアプリ サーバーにリクエストを転送できるようにする方法を検討しています。 、そしてこのセットアップがセキュリティ面から保護するものは何ですか。

note-http-proxy のドキュメントでは、複数のポートまたは IP アドレスを持つアプリにリクエストを転送する方法としてそれを使用することについて多くのことが説明されています。これは、特に基本的なラウンド ロビン ロード バランサー戦略では非常に便利です。ただし、1 つのポートに 1 つのアプリしかないため、これを行う必要はありません。

このプロキシ サーバーを使用する重要なセキュリティ上の理由がある場合は、どのような種類の攻撃から保護されるかを知りたいです。また、socket.io を使用しているので、プロキシが websocket サーバーのスケールアップに役立つことがあれば、それも理解したいと思います。(1024 未満のすべてのポートはルート アクセスを必要とするため)アプリを実行する方法を理解するのに苦労しているsudoため、この時点でプロキシ サーバーを使用する十分な理由がない場合は、破棄します。root アクセスなしでポート 80 のプロキシ サーバーを使用してこのアプリを実行する方法を知っている人がいれば、それも非常に役立ちます。ありがとう!

4

3 に答える 3

3

リバース プロキシを実行する理由は次のとおりです。

  • 開いている IP ポートが制限されており、それぞれに独自のポートが必要な多数のノード サービスを実行する必要がある
  • バックエンド サービスは HTTPS をサポートしていませんが、HTTPS が必要です (Derby など)
  • バックエンドでは簡単に実行できないその他の機能をリクエストに追加するため (基本認証や何らかの形式の一般的なログ/監査を追加するなど)
  • 複数のバックエンド サービスに共通する発信応答への追加または変更を適用するには
  • 負荷分散サービスを提供するには

node-http-proxy は非常に単純であるため、ニーズが非常に単純でない限り、HAproxyなどの専用プロキシを使用することをお勧めします。

于 2012-05-22T11:51:28.663 に答える
1

主に http-proxy を使用して、単一の IP の背後に複数のバックエンド サーバーを配置しますが、https を http に転送するためにも使用します。アプリを強化します。

セキュリティに関しては、アプリよりも http-proxy の品質に自信があるかもしれません。nodejitsu によって構築されたプロキシは本番環境の準備ができており、attaquant が自分のアプリではなく http プロキシで特権を取得する (秘密鍵ファイルを読み取るなど) ことはより困難になるはずです (もちろん、これはセキュリティ開発のスキルと信頼に依存します)。オープンソースの http-proxy プロジェクトで)。

于 2012-05-21T08:03:42.173 に答える
1

サーバーのインスタンスを 1 つだけ実行している場合、特に理由はありません。node-http-proxy ドキュメントでは、複数のアプリで単一の SSL 証明書を使用することが言及されていますが、これは非常に可能です。複数の HTTP および Web ソケット サーバー間で負荷を分散することもできます (たとえば、リアルタイム データ用に 10 個の socket.io サーバーを実行し、アセットと REST API を提供するために 1 つの HTTP サーバーのみを実行します)。もちろん、1 つのインスタンスでは、これらは何のメリットもありません。

sudo を使用せずにノード サーバーを実行する場合は、ポート 80 から 1024 を超えるポートへの IP テーブル ポート フォワーディングを設定してみてください

于 2012-05-21T00:47:47.237 に答える