我在Heroku上有一个主服务器,它可以处理对其他2个应用程序的重定向。
基本上有3个服务器:
-主服务器(处理重定向)
-主应用服务器
-辅助应用服务器
下面的代码非常适合重定向,但是我对带有免费dyno的服务器的睡眠有问题。
当用户尝试访问辅助应用程序时,最初它会唤醒主服务器。主服务器唤醒时,它将尝试唤醒辅助应用程序。
由于某种原因,它会引发错误(“应用程序错误”),但是如果刷新页面,它将立即为辅助应用程序提供服务。
如何避免出现此错误消息?
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);
答案 0 :(得分:0)
我不确定是否可以采取一些措施来避免此错误,但是至少您可以捕获它,并在需要时重试多个请求,从而使dyno能够正确唤醒。
第一个请求返回的错误代码是什么?
运行heroku logs --tail --app mainapp/secondaryapp
时是否有任何有用的跟踪记录?