Node-http-proxydynamic路由表?

即时消息使用下面的代码为http代理:

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); 

我的问题是,我可以dynamic更新路线表吗? 没有停止代理服务器?

Thx的答案

面对这个问题的每个人,我终于得到了开箱即用的解决scheme。 它的所有可能,如果你传递一个string指向一个文件,而不是传递一个对象为arg。 我会举一个例子,它应该是清楚的。

的proxy.js:

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

正如你看到这里,我通过table.json路由器选项。 所以看看那个文件。

table.json:

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

那就是整个魔法。 node-http-proxy会监控那个文件,如果你做了任何修改,它会自动更新它的路由表。

问候

是的,但不使用ProxyTable。 我已经logging了一个名为“交换机”的http-proxy的ProxyTable的替代方法,它可以做你想做的事情。 您将不得不重新安排一些function来正确初始化path和后端目标,但这应该是一个简单的操作, backendTable对象在运行时是dynamic可用的。