【问题标题】:Express Server Proxy Multiple ApplicationsExpress 服务器代理多个应用程序
【发布时间】:2018-10-03 12:59:18
【问题描述】:

我正在尝试为多个节点应用程序编写反向代理。什么时候做这样的事情:

app.use('/', proxy('http://localhost:5010/'));
app.listen(8000, (err) => {
if (err) {
    return console.error('Application failed to start:', err);
}
    console.log('Application listening on port', 8000);
});

它按预期工作。但是当我做类似的事情时

app.use('/', proxy('http://localhost:5010/'));
app.use('/config', proxy('http://localhost:5020/config'));
app.listen(8000, (err) => {
if (err) {
    return console.error('Application failed to start:', err);
}
    console.log('Application listening on port', 8000);
});

我对 http://localhost:8000/config 的请求被路由到 localhost:5010

如果我只做/config 的代理,它将正确路由。它是关于我何时做多个代理的。

我为此使用 express 和 express-http-proxy。

关于如何做到这一点的任何想法?

【问题讨论】:

    标签: node.js express proxy reverse-proxy


    【解决方案1】:

    Express 中间件按顺序执行。所以你的第一行

    app.use('/', proxy('http://localhost:5010/'));
    

    对于//config 以及所有路由都是如此。因此,如果您想为某些路线做一些不同的事情,请将其放在顶部

    app.use('/config', proxy('http://localhost:5020/config'));
    app.use('/', proxy('http://localhost:5010/'));
    

    所以现在您的第一行将仅对 /config 路径有效,并且所有其他路由器将前进到 secod 处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-07
      • 2023-03-26
      • 1970-01-01
      • 2017-11-03
      • 2015-06-26
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多