【问题标题】:How to proxy with NodeJS on Heroku with free Dyno?如何使用免费的 Dyno 在 Heroku 上使用 NodeJS 进行代理?
【发布时间】:2019-01-05 15:18:17
【问题描述】:

我在 Heroku 上有一个主服务器,它处理重定向到其他 2 个应用程序。 基本上有 3 台服务器:
- 主服务器(处理重定向)
- 主应用服务器
- 辅助应用服务器

下面的代码非常适合重定向,但是我在使用免费测功机的服务器睡眠时遇到了问题。 当用户尝试访问辅助应用程序时,最初它会唤醒主服务器。当主服务器唤醒时,它会尝试唤醒辅助应用。
由于某种原因,它会引发错误(“应用程序错误”),但如果您刷新页面,它会立即为辅助应用程序提供服务。

我应该怎么做才能避免错误消息?

const express = require('express');
const proxy = require('http-proxy-middleware');

const app = express();

const port = process.env.PORT || 3000;
const router = {
    'secondaryapp.example.com': 'https://secondaryapp.herokuapp.com'
};

app.use('/', proxy({
    target: 'https://mainapp.herokuapp.com',
    changeOrigin: true,
    router: router
}));

app.listen(port);

【问题讨论】:

    标签: node.js express heroku proxy


    【解决方案1】:

    我不确定您是否可以采取一些措施来避免此错误,但至少您可以捕获它并在需要时重试多次请求,从而让测功机正确唤醒。

    第一次请求返回的错误码是什么?

    运行heroku logs --tail --app mainapp/secondaryapp时有什么有用的跟踪吗?

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      • 2022-01-04
      • 2021-07-08
      • 1970-01-01
      相关资源
      最近更新 更多