9

http-proxyに次のコードを使用しています:

var httpProxy = require('http-proxy');

var options = {
    router: {
    'url1.com': '127.0.0.1:3000',
    'url2.com': '127.0.0.1:3001'
    }
};

httpProxy.createServer(options).listen(80);

私の質問は、ルートテーブルを動的に更新できますか? プロキシ サーバーをシャットダウンせずに?

回答ありがとうございます

4

2 に答える 2

15

その問題に直面しているすべての人にとって、最終的に私は箱から出して解決策を得ました。オブジェクトをargとして渡す代わりに、ファイルを指す文字列を渡すと、すべて可能です。例を挙げますが、それは明らかです。

プロキシ.js:

var httpProxy = require('http-proxy');
var options   = { router: 'table.json' };

httpProxy.createServer(options).listen(80);

ここでわかるように、table.json をルーター オプションとして渡します。そのファイルの中を見てください。

テーブル.json:

{
   "router":
   {
      "domain1.com": "127.0.0.1:8080",
      "domain2.com": "127.0.0.1:8001"
   }
}

そして、それがすべての魔法です。node-http-proxy はそのファイルを監視し、変更を加えると、ルートテーブルを自動的に更新します。

ご挨拶

于 2012-04-27T06:40:05.747 に答える
0

はい。ただし、ProxyTable は使用しません。http-proxy の ProxyTable に代わる「Switchboard」と呼ばれる方法を文書化しました。パスとバックエンド ターゲットを適切に初期化するには、いくつかの機能を再配置する必要がありますが、それは簡単な操作である必要があり、backendTableオブジェクトは実行時に動的に利用できます。

于 2012-01-05T19:05:39.983 に答える