微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有时 Node.js 服务器响应错误高负载

如何解决有时 Node.js 服务器响应错误高负载

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 错误。在高负载期间,我们立即得到错误,而不是超时错误

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

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

error on console - Angular

error on android

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 上的错误

解决方法

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

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

Android connect Node.js REST unexpeceed end of stream

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。