Node-http-proxy动态路由表?

ayk*_*ayk 9 http-proxy node.js

即时为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);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以动态更新路由表吗?没有关闭代理服务器?

谢谢答案

ayk*_*ayk 15

对于每个面临这个问题的人来说,最后我得到了开箱即用的解决方案.如果您传递指向文件的字符串,而不是将对象作为arg传递,则一切皆有可能.我举一个例子,应该很清楚.

的proxy.js:

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

httpProxy.createServer(options).listen(80);
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的,我将table.json作为路由器选项传递.所以看看那个文件.

table.json:

{
   "router":
   {
      "domain1.com": "127.0.0.1:8080",
      "domain2.com": "127.0.0.1:8001"
   }
}
Run Code Online (Sandbox Code Playgroud)

这就是整个魔术.node-http-proxy将监视该文件,如果对其进行任何更改,它将自动更新其路由表.

问候