7

私は最近、ソーシャル メディア サイトにアクセスしてパブリック フィードをキャッシュする node.js アプリを作成しました。ソーシャル メディア API へのアクセスを容易にするために、いくつかの既存の npm モジュールを使用しています。私の開発環境では魅力的に機能しますが、実稼働環境ではリクエストがプロキシを通過する必要があるためタイムアウトになります。

npm モジュールを変更せずに、送信リクエストをプロキシ経由にするにはどうすればよいですか?

4

2 に答える 2

3

そのための npm モジュールがあります。

https://www.npmjs.com/package/global-tunnel

var globalTunnel = require('global-tunnel');

globalTunnel.initialize({
  host: '10.0.0.10',
  port: 8080,
  sockets: 50 // optional pool size for each http and https 
});

または、特定のリクエストのみをプロキシしたい場合は、tunnel パッケージを使用できます (これは、上記のグローバル トンネルの背後にある原動力です)。

https://www.npmjs.com/package/tunnel

var tunnel = require('tunnel');

// create the agent
var tunnelingAgent = tunnel.httpsOverHttps({
  proxy: {
    host: 'localhost',
    port: 3128
  }
});

var req = https.request({
  host: 'example.com',
  port: 443,
  // pass the agent in your request options
  agent: tunnelingAgent
});
于 2016-04-26T04:14:01.023 に答える
3

http.globalAgent プロパティを使用します。これにより、プロセスで実行されているすべてのリクエストをインターセプトできます。その後、これらの要求を変更して、プロキシ サーバー用に適切にフォーマットすることができます。

http://nodejs.org/api/http.html#http_http_globalagent

もう 1 つのオプションは、そのアプリケーションのプロキシ例外を作成することです。

于 2013-05-08T18:22:41.483 に答える