Я использую прокси-приложение ISAM (назовем его Proxy-APP) на платформе Express. ISAM использует концепцию обратного прокси-сервера для перенаправления трафика на серверное экспресс-приложение (назовем его Приложение).
Проблема:
У нас есть функция загрузки, написанная в App. Аналогично ниже: -
router.get('/fileDownload', function (req, res, next) {
res.setHeader('Content-disposition', 'attachment;filename=' + req.query.fileName);
request(req.query.url).pipe(res);
});
Вышеприведенный код делает запрос на внешний URL-адрес (содержит некоторый фактический файл), а затем передает ответ. Периодически мы получаем 502 Bad Gateway в журналах Proxy-App.
Есть закономерность, когда мы получаем ошибку 502. Если прокси-приложение не получает ответ от приложения в течение 2 минут, оно выдает ошибку 502.
Как мы можем написать приведенный выше код более эффективно, чтобы, когда ответ не приходит от req.query.url
, мы могли обработать ошибку.
OR
Что мы можем изменить в Proxy-App, чтобы мы могли увеличить тайм-аут на 2 минуты. Ниже приведен контекст и параметры http-proxy-middleware.
var context = '/';
var options = {
target: TARGET,
changeOrigin: true,
logLevel: 'info',
agent: https.globalAgent,
timeout: 3600 * 1000
};
var proxy = proxyMiddleware(context, options);
app.use(proxy);
Примечание. Тайм-аут выше никак не влияет на решение проблемы.
Изменить: request
модуль из node.js.