【发布时间】:2021-06-06 12:35:27
【问题描述】:
高负载时nodejs服务器响应错误消息。
一些错误是:
Http failure response for (api url):0 Unknown Error 和 cors 错误。在浏览器控制台上。
在 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