Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Ngnix上游过早关闭连接,同时从上游读取响应头,用于大型请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Nginx和节点服务器来提供更新请求。当我请求更新大数据时,我得到网关超时。我从Nginx错误日志中看到了这个错误

2016/04/07 00:46:04 [错误] 28599#0:* 1上游过早关闭连接,同时从上游读取响应头,客户端:10.0.2.77,服务器:gis.oneconcern.com,请求:“GET / update_mbtiles / atlas19891018000415 http / 1.1“,上游:”http://127.0.0.1:7777/update_mbtiles/atlas19891018000415“,主持人:”gis.oneconcern.com“

我用谷歌搜索错误并尽我所能,但我仍然得到错误

我的Nginx conf有这些代理设置:

##
    # Proxy setTings
    ##

    proxy_connect_timeout 1000;
    proxy_send_timeout 1000;
    proxy_read_timeout 1000;
    send_timeout 1000;

这就是我的服务器的配置方式

server {
listen 80;

server_name gis.oneconcern.com;
access_log /home/ubuntu/Tilelive-Server/logs/Nginx_access.log;
error_log /home/ubuntu/Tilelive-Server/logs/Nginx_error.log;

large_client_header_buffers 8 32k;
LOCATIOn / {
    proxy_pass http://127.0.0.1:7777;
    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
}

LOCATIOn /faults {
    proxy_pass http://127.0.0.1:8888;
    proxy_http_version 1.1;
    proxy_buffers 8 64k;
    proxy_buffer_size 128k;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

我正在使用Nodejs后端来为aws服务器上的请求提供服务。仅当更新需要很长时间(大约3-4分钟)时才会显示网关错误。对于较小的更新,我不会收到任何错误。任何帮助将受到高度赞赏。

节点js代码

app.get("/update_mbtiles/:earthquake",function(req,res){
var earthquake = req.params.earthquake
var command = spawn(__dirname + '/update_mbtiles.sh',[ earthquake,pg_details ]);
//var output  = [];

command.stdout.on('data',function(chunk) {
//    logger.info(chunk.toString());
//     output.push(chunk.toString());
});

command.stderr.on('data',function(chunk) {
  //  logger.error(chunk.toString());
 //   output.push(chunk.toString());
});

command.on('close',function(codE) {
    if (code === 0) {
        logger.info("updating mbtiles successful for " + earthquake);
        tilelive_reload_and_switch_source(earthquake);
        res.send("Completed updating!");
    }
    else {
        logger.error("Error occured while updating " + earthquake);
        res.status(500);
        res.send("Error occured while updating " + earthquake);
    }
});
});

function tilelive_reload_and_switch_source(earthquake_unique_id) {
tilelive.load('mbtiles:///'+__dirname+'/mbtiles/tipp_out_'+ earthquake_unique_id + '.mbtiles',function(err,sourcE) {
    if (err) {
        logger.error(err.messagE);
        throw err;
    }
    sources.set(earthquake_unique_id,sourcE); 
    logger.info('updated source! New tiles!');
});
}

谢谢。

@H_@R_450_11248@_32@解决方法
我认为来自Nginx错误表明连接已被nodejs服务器关闭(即“上游”)。 nodejs是如何配置的?

大佬总结

以上是大佬教程为你收集整理的node.js – Ngnix上游过早关闭连接,同时从上游读取响应头,用于大型请求全部内容,希望文章能够帮你解决node.js – Ngnix上游过早关闭连接,同时从上游读取响应头,用于大型请求所遇到的程序开发问题。

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

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