Node-http-proxy 动态路由表?
Posted
技术标签:
【中文标题】Node-http-proxy 动态路由表?【英文标题】:Node-http-proxy dynamic routetable? 【发布时间】:2011-12-03 04:40:38 【问题描述】:我为 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);
我的问题是,我可以动态更新路由表吗?不关闭代理服务器?
谢谢解答
【问题讨论】:
【参考方案1】:对于面临这个问题的每个人,我终于找到了开箱即用的解决方案。如果你传递一个指向文件的字符串,而不是传递一个对象作为参数,这一切都是可能的。我举个例子应该就清楚了。
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 将监视该文件,如果您对其进行任何更改,它将自动更新其路由表。
问候
【讨论】:
这就是您如何在 5 分钟内启动并运行一个正常工作的代理服务器。我发现 NodeJS 很棒。轻巧简单。 他们有这方面的文档吗?【参考方案2】:是的,但不使用 ProxyTable。我已经记录了an alternative to http-proxy's ProxyTable called 'Switchboard',它可以做你想做的事情。您必须重新安排一些功能以正确初始化路径和后端目标,但这应该是一个简单的操作,并且backendTable
对象在运行时动态可用。
【讨论】:
以上是关于Node-http-proxy 动态路由表?的主要内容,如果未能解决你的问题,请参考以下文章