質問はかなり簡単です。 Node.jsサーバーをプロキシとして使用して、HTTPクエリをログに記録し、認証し、バックエンドHTTPサーバーに転送します(PUT、GET、およびDELETE要求)。
そのためにどのライブラリを使用する必要がありますか?見つからないのではないかと心配しています。
NodeJSはhttp.requestを標準モジュールとしてサポートします: http://nodejs.org/docs/v0.4.11/api/http.html#http.request
var http = require('http');
var options = {
Host: 'example.com',
port: 80,
path: '/foo.html'
};
http.get(options, function(resp){
resp.on('data', function(chunk){
//do something with chunk
});
}).on("error", function(e){
console.log("Got error: " + e.message);
});
node-http-proxy と express を組み合わせます。
node-http-proxyは、RoutingProxy
を介してnode.js Webサーバー内のプロキシをサポートします(別のhttpサーバー内のプロキシ要求を参照してください)。
カスタムサーバーロジック内で、エクスプレスを使用して認証を行うことができます。 例についてはこちらの認証サンプル を参照してください。
これら2つの例を組み合わせると、必要なものが得られます。
組み込みのhttp
モジュールを使用して、http.request()
を実行できます。
ただし、APIを簡素化する場合は、 superagent などのモジュールを使用できます
node-http-proxyは、上記の@hrossによって提案された素晴らしいソリューションです。 nodeを使用する上でデッドセットになっていない場合、 NGINX を使用して同じことを行います。 nodeで本当にうまく機能します。たとえば、SSLリクエストを処理してからノードに転送するために使用します。キャッシュおよび転送ルートも処理できます。わーい!
これを行うには、node.js httpモジュールを使用できます。 Node.js HTTP でドキュメントを確認できます。
他のHTTPサーバーにもクエリ文字列を渡す必要があります。 ServerRequest.url にあるはずです。
これらの情報を取得したら、バックエンドHTTPサーバーに渡し、http.request()
で提供するオプションをポートに渡すことができます。