首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reverse无效

reverse无效
EN

Stack Overflow用户
提问于 2015-05-01 18:37:52
回答 1查看 157关注 0票数 0

在本地主机上运行一个appA :8000 ->服务器是python(Django),并且总是崩溃,我有一个运行在localhost上的->服务器:8080,我是appA的用于running服务器的静态文件,它工作得很好。

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

这是我所拥有的。但不起作用。当尝试访问localhost:8000 form localhost:8080 (例如localhost:8080/api/my-profile)中的端点时,我会得到一个错误。

forward.js:

代码语言:javascript
复制
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:

代码语言:javascript
复制
var forward = require('./path/to/forward.js');

// instantiate `app` et al

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

app.listen(8080);

regex捕获以/api/开头的任何请求,并捕获该前缀后面的任何内容,这样我们就可以适当地转发它。

EN

回答 1

Stack Overflow用户

发布于 2015-05-01 21:26:12

如果没有看到错误的更多细节,就很难确切地说出问题是什么。好消息是其他人已经解决了这个问题。我在一个名为proxy-middleware的模块上很幸运。

https://www.npmjs.com/package/proxy-middleware

在你的例子中,我认为你可以摆脱forward.js,修改你的app.js

代码语言:javascript
复制
var proxy = require('proxy-middleware');
var url = require('url');

// instantiate `app` et al

app.use(proxy('/api', url.parse(TARGET_URL)));

app.listen(8080);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29992939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档