【发布时间】:2015-05-01 18:37:52
【问题描述】:
在 localhost:8000 上运行 appA -> 服务器是 python(Django) 并且总是崩溃 我有一个在 localhost:8080 上运行的 expressJs 服务器 我是appA的expressJs服务器的静态文件,效果很好。
问题:我想在 expressJs 中创建一个反向代理以便我可以将任何传入的 api 请求转发到 express 服务器。 基本上,该应用应该与新的 expressJs 服务器一起工作(就像它过去与 Django/python 服务器一起工作一样)
这就是我所拥有的。但它不起作用。当尝试从 localhost:8080 访问 localhost:8000 中的端点时(例如 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/ 开头的任何请求,并捕获该前缀之后的任何内容,以便我们可以适当地转发它。
【问题讨论】:
标签: python node.js express reverse-proxy