expressJs反向代理无法正常工作

时间:2015-05-01 18:37:52

标签: python node.js express reverse-proxy

在localhost:8000上运行appA - >服务器是python(Django)并且总是崩溃 我有一个在localhost:8080上运行的expressJs服务器 我是appA的expressJs服务器的静态文件,效果很好。

问题:我想在expressJs 中创建反向代理,以便我可以将任何传入的api请求转发到快速服务器基本上,应用程序应该使用新的expressJs服务器(就像以前用于Django / python服务器一样)

这就是我所拥有的。但它不起作用。当尝试命中localhost:8000形式localhost:8080(例如localhost:8080 / api / my-profile)中的端点时,出现错误。

forward.js:

var request = require('request')

module.exports = function(pattern, host){
  return function(req, res, next){
    if(req.url.match(pattern)){
      var db_path = req.url.match(pattern)[1]
        , db_url = [host, db_path].join('/');
      req.pipe(request[req.method.toLowerCase()](db_url)).pipe(res);
    }else{
      next();
    }
  }
}

app.js:

var forward = require('./path/to/forward.js');

// instantiate `app` et al

app.use(forward(/\/api\/(.*)/, TARGET_URL));

app.listen(8080);

正则表达式捕获以/ api /开头的任何请求,并捕获该前缀之后的任何内容,以便我们可以正确转发它。

0 个答案:

没有答案