【问题标题】:Node.js Server Response Error sometime (on High load)有时 Node.js 服务器响应错误(高负载)
【发布时间】:2021-06-06 12:35:27
【问题描述】:

高负载时nodejs服务器响应错误消息。

一些错误是: Http failure response for (api url):0 Unknown Errorcors 错误。在浏览器控制台上。

在 Android 端,错误是 unexpected end of stream on Connection {api url:80, proxy=Direct hostaddress=apiurl/serverip:80 cipherSuite=none protocol=http/1.1

我们有 16 GB ram 4vCPUs aws 实例

nginx 反向代理在 4 个节点实例(通过 pm2 创建)、ip_hash(因为我们使用的是 socketio)之间进行负载平衡

在浏览网络时,一些建议是“Its cors error”、“it server side error, contact the backend team

对于cors,我们正在使用来自 npm 的 cors 包。 app.use(cors())。我正在寻找服务器端的固定。我们正在使用快递。

因为网站和应用程序在运行时完美运行,并且在问题期间出现 cors 错误。它可能不是cors错误。在高负载期间,我们会立即收到错误,而不是超时错误。

我们无法找出问题所在。有什么建议吗?

更新:由于正在进行投票以关闭此问题,我可能无法得到答案,但这里有一些错误,请注意应用程序和网站(角度)工作正常,但在挑选时间出现这些错误,我希望超时或节点停止,但不是这些错误,所以认为有问题。

Update2:在查看 nginx 错误日志时,我们得到了这个错误。

2021/03/09 17:10:25 [alert] 1058#1058: *2946806 768 worker_connections are not enough while connecting to upstream, client: 120.xx.xxx.114, server: api.mydomain.com, request: "GET /Image-1611905660330.jpg HTTP/1.1", upstream: "http://127.0.0.1:8000/Image-1611905660330.jpg", host: "api.mydomain.com"

更新3:查找上面的错误,发现提示,我们需要增加worker_connections,所以我们更新到/etc/nginx/nginx.conf;。现在我们得到错误*2908 socket() failed (24: Too many open files) while connecting to upstream,

更新 4:将 worker_rlimit_nofile 20000; 添加到 /etc/nginx/nginx.conf 似乎可以修复更新 3 上的错误。

【问题讨论】:

    标签: node.js nginx cors nginx-reverse-proxy


    【解决方案1】:

    cors 错误是由浏览器发出的,而不是服务器发出的。服务器只是给出浏览器 cors 策略响应。是否应视为错误由浏览器自行决定。

    我不是 android 开发人员,但我认为您的一些问题是由来自 android 客户端而不是服务器的滥用请求造成的。

    Android connect Node.js REST unexpeceed end of stream

    java.io.IOException: unexpected end of stream on Connection in android

    【讨论】:

    • 该网站运行良好(没有 cors 错误),但在特定时间段内,(我假设我们在此期间收到很高的请求)控制台显示该错误。错误是:消息:“the url 的 Http 响应失败:0 未知错误”名称:“HttpErrorResponse”正常:错误状态:0 状态文本:“未知错误”
    • @SagarDevkota 这没有意义。从技术上讲,单个核心 nodejs 应用一次可以承受超过 1000 个并发请求。而且,当您使用 nodejs 服务器超过最大性能时,您会收到可以明确注意到的错误消息。
    • @SagarDevkota stackoverflow.com/questions/56962381/… 这是当你使用 nodejs 超出最大性能时可能会遇到的某种错误。在这种情况下,服务器会立即停止,并且您会从 nodejs 核心收到错误消息
    • 谢谢,Bad Dobby,这没有意义,我厌倦了在我的圈子里向一些朋友询问这个错误,所有的反应都是这样的,不应该是这样的。所以我在这里尝试了。我不知道是否查看节点或数据库(mongo)或nginx或前端。它可以正常工作到下午 4 点(粗略),然后开始出现这些错误,预计它会在晚上 7 点到 8 点之后工作到第二天。它已经相似了 2 天。 :(无论如何谢谢!美好的一天:)
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2016-05-13
    • 1970-01-01
    • 2013-02-17
    • 2015-01-21
    相关资源
    最近更新 更多