2013-09-03 7 views
24

私はプロキシサーバーの後ろにある作物ネットワークで作業していました。私のコードでは、このスレッド(How can I use an http proxy with node.js http.Client?)で述べられている方法を使ってプロキシを設定できます。Node.jsグローバルプロキシ設定

しかし、問題は、サードパーティのモジュールのほとんどがプロキシ設定を持っていないため、プロキシを追加するコードを変更できないということです。また、私のコードは直接接続環境で使用される可能性があります。つまり、私のコードでプロキシ設定をハードコーディングすることはできません。

私はNPMは

 
npm config set proxy http://proxy.company.com:8080 
npm config set https-proxy http://proxy.company.com:8080 

あるプロキシのグローバル設定を持っている。しかし、私はNode.js.で同様の任意の設定を見つけることができませんでした知っています

Node.jsはグローバルプロキシ設定をサポートしているので、すべてのコードを変更したり、簡単にオン/オフを切り替える必要はありません。

答えて

4

私は最終的に(部分的に)この問題を解決するモジュールを作成しました。基本的にこのモジュールはhttp.request関数を書き換え、プロキシ設定を追加してから起動します。私のブログ記事を確認してくださいhttp://blog.shaunxu.me/archive/2013/09/05/semi-global-proxy-setting-for-node.js.aspx

+0

です素晴らしいソリューション、私は3番目の部分のミドルウェアを使用している、それはHTTP要求を行う、どのようにこのシナリオでは、プロキシの問題を解決するには? – yuyue007

+0

私のブログのコードは、サードパーティのモジュールが 'http'モジュールを利用してリクエストを送信すると、あなたの問題を解決できると思います。第三者のモジュールの前に自分のモジュールを 'require 'するようにしてください。 –

+0

URLが返されました404、これが見つかりましたhttp://geekswithblogs.net/shaunxu/archive/2013/09/05/semi-global-proxy-setting-for-node.js.aspx – haxpor

17

残念ながら、私は残念ながら、http.requestへの各呼び出しでプロキシ情報を設定する必要があります。ノードには、グローバルプロキシ設定のメカニズムは含まれていません。

NPMのglobal-tunnel moduleは、しかし、これを処理するために表示されます。

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

globalTunnel.initialize({ 
    host: 'proxy.example.com', 
    port: 8080 
}); 

グローバル設定がinitializeへの呼び出し、両方http.requestを確立し、requestsライブラリがプロキシ情報が使用されますされた後。ないNodejs設定、私はあなたが私はむしろ便利見つけるproxychainsを使用することをお勧めしながら

process.env.http_proxy = 'http://proxy.example.com:3129'; 
globalTunnel.initialize(); 
+0

プロキシ設定?これは基本的にenv.http_proxyが何であるかということですから? –

+0

グローバルトンネル設定でユーザ名とパスワードを指定できますか。 –

0

モジュールもhttp_proxy環境変数を使用することができます。おそらく、あなたのパッケージマネージャーで利用可能です。

設定ファイル(私のために/etc/proxychains.conf)でプロキシを設定した後、あなたはproxychains npm startか​​(すなわちproxychains [command_to_proxy_transparently])を実行することができますし、すべての要求が自動的にプロキシされます。私にとって

コンフィグ設定:

これらはあなたが

## Exclude all localhost connections (dbs and stuff) 
localnet 0.0.0.0/0.0.0.0 
## Set the proxy type, ip and port here 
http 10.4.20.103 8080 

を追加する必要があります最小限の設定(あなたがnslookup [proxyurl]を使用してプロキシのIPを取得することができます)

関連する問題