node.js – 间歇性502坏网关错误(使用nginx,nodejs,mongodb)

前端之家收集整理的这篇文章主要介绍了node.js – 间歇性502坏网关错误(使用nginx,nodejs,mongodb)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们使用nodejs(v 0.10.29),express,Nginx(版本1.4.6)和mongodb(v 2.6.3)replicaset并获得间歇性的502错误网关错误.虽然Nginx aerror.log正在显示,但是pm2 logs无法记录错误

recv() Failed (104: Connection reset by peer) while reading response header from     upstream,client: xxx.xxx.xxx.xxx,server: somedomain.com,request: "GET /img/abc.png HTTP/1.1",upstream: "http://127.0.0.1:3000/img/abc.png",host: "domain.com",referrer: "http://domain.com/admin/"

和access.log说:

"GET /url/abc.html HTTP/1.1" 502 723 "http://domain.com/admin/" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/33.0.1750.117 Safari/537.36"

谁能引导我解决这个问题?

它可能不是Nginx本身的问题,但更多的是nodejs的问题. 502错误网关错误意味着Nginx向nodejs服务器询问了一些信息,并且nodejs服务器应答,然后“立即挂断电话”. “挂断电话”更多地是对消息的“通过对等方重置连接”部分的引用.

现在,这可能表明存在许多不同的问题,所以我无法给出明确的答案.

可能是处理请求时存在实际错误,这需要通过js代码跟踪错误.

这可能是一个内存问题(你的内存使用情况如何)?

或者它可能是节点部分的超时错误,或者因为返回答案花了太长时间,或者因为代码有问题或系统内存不足.

我知道我曾经在NginxPHP-fpm之间得到间歇性的超时错误,因为Nginx会放弃等待PHP.我调整了内存使用量和超时设置来修复它(我优化了PHP代码).

如果您可以提供有关内存/负载使用情况或来自节点或应用程序的日志的更具体信息,或者甚至是502错误中的一般模式(它是否已本地化到地理区域,浏览器,操作系统?),那么答案可能是不那么投机.

猜你在找的Nginx相关文章