Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 获取504 GATEWAY_TIMEOUT NodeJs大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在60页的页面加载后得到504 GATEWAY_TIMEOUT http响应.

它不是正在加载的实际页面,而是正在执行的进程.我预计它需要超过60秒,我试增加超时值,但它没有帮助.

我使用快速框架进行路由,并在EB(AWS Elastic Beanstalk)上托管作业.由于我已经增加了我可能在AWS控制台中的EB和负载均衡器上找到的所有超时值,我认为它必须是超时设置为60秒的应用程序本身.但是,我可能错了.

我的代码

/* GET home page. */
router.get('/main',function(req,res,next) {
req.connection.setTimeout(600000);
        mainProcess(res);
        //res.send("mainProcess() called");
    });

更新:

除此之外,我尝试了不同的方法.我将此代码添加到app.js:

var connectTimeout = require('connect-timeout');
var longTimeout = connectTimeout({ time: 600000 });
app.use(longTimeout);

也没有帮助.

updatE2:
我也试过在/ bin / www中增加超时,如下所示:

var server = http.createServer(app);
server.timeout=600000;

updatE3:
我注意到超时与Nginx配置有关.正如我的日志所说:上游超时(110:连接超时),同时读取响应头
但是,我无法想出一种在Elastic beanstalk上编辑Nginx配置的方法.我做了一些研究,但这对我来说似乎都不标准,而且对于这么简单的事情来说太僵硬了.

解决方法

通常,当作业超过30秒或40秒时,我通常会通知正在执行的用户,然后创建一个处理数据库的进程而不是对服务器的正常请求,以避免用户等待请求和为了避免超时问题,您可以尝试这样做,例如,当您将服务器设置为侦听指定端口时:

//Create server with specified port
var server = app.listen(app.get('port'),function() {
  debug('Express server listening on port ' + server.address().port);
});
//set timeout time
server.timeout = 1000;

大佬总结

以上是大佬教程为你收集整理的node.js – 获取504 GATEWAY_TIMEOUT NodeJs全部内容,希望文章能够帮你解决node.js – 获取504 GATEWAY_TIMEOUT NodeJs所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。