【问题标题】:Node.js as a forwarding proxy but changing the URL path?Node.js 作为转发代理但更改 URL 路径?
【发布时间】:2012-10-26 04:35:15
【问题描述】:

我如何让 node.js 充当代理并将所有从一台服务器发送的请求转发到另一台服务器,但从 url 路径中剥离 /couchdb/ 以便例如 POST /couchdb/mydatabase 将是 POST /mydatabase。当它收到响应时,它应该将它发送到第一台服务器。

我所做的就是(使用 express)获取 URL 路径以 /couchdb/ 开头的所有请求

app.all(/^\/couchdb\/(?:.)*/, function(req, res) {

});

谁能指导我完成。谢谢

【问题讨论】:

    标签: javascript http node.js


    【解决方案1】:

    看看node-http-proxy。你可以这样使用它:

      var http = require('http'),
      httpProxy = require('http-proxy');
      httpProxy.createServer(function (req, res, proxy) {
             // Put your custom server logic here (eg rewrite url/header,...)
          proxy.proxyRequest(req, res, {host: 'localhost', port: 9000});
      }).listen(8000);
    

    【讨论】:

    • 我猜 http-proxy 的 api 自发布以来已经发生了变化。为了让它工作,我不得不使用:proxy.proxyRequest(req, res, {host: 'localhost', port: 9000});
    • 这不再起作用,因为现在必须在选项中传递某种目标或前向字段。运行上面的代码给了我Must provide valid url for Target
    猜你喜欢
    • 2018-10-03
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2014-02-28
    • 2011-03-16
    • 2019-06-11
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多