Как прокси с NodeJS на Heroku с бесплатным Dyno? - PullRequest
0 голосов
/ 05 января 2019

У меня есть главный сервер на 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);

1 Ответ

0 голосов
/ 11 января 2019

Я не уверен, что есть что-то, что вы можете сделать, чтобы избежать этой ошибки, но, по крайней мере, вы можете перехватить его и при необходимости повторить несколько запросов, что позволит динамометру правильно проснуться.

Какой код ошибки возвращается при первом запросе?

Есть ли полезный след при запуске heroku logs --tail --app mainapp/secondaryapp?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...