我正在使用由Express提供支持的ISAM代理应用程序(我们称之为Proxy-APP)。 ISAM使用反向代理概念将流量重定向到后端快速应用程序(称之为App)。
我们正在使用App编写的下载功能。与下面类似: -
router.get('/fileDownload', function (req, res, next) {
res.setHeader('Content-disposition', 'attachment;filename=' + req.query.fileName);
request(req.query.url).pipe(res);
});
上面的代码向外部URL发出请求(包含一些实际文件),然后管道响应。 间歇性我们在Proxy-App日志中获得502 Bad Gateway。
当我们得到502错误时有模式。如果Proxy-App在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的模块。