我正在使用由 Express 提供支持的 ISAM 代理应用程序(我们称之为 Proxy-APP)。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。
当我们收到 502 错误时有模式。如果 Proxy-App 在 2 分钟内没有收到 App 的响应,则会给出 502 错误。
我们怎样才能更有效地编写上面的代码,以便当没有响应时req.query.url
我们可以处理错误。
或者
我们可以在 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 的模块。