【问题标题】:Node-http-proxy dynamic routetable?Node-http-proxy 动态路由表?
【发布时间】: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);

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

谢谢解答

【问题讨论】:

    标签: node.js http-proxy


    【解决方案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 对象在运行时动态可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      相关资源
      最近更新 更多