Ole*_*sov 7 localhost ddos node.js vue.js nuxt.js
同事!
面对一个不寻常的问题,我无法自己找到解决方案。底线是:Nuxt.js 上有一个网站与 Laravel 一起作为后端。在服务端渲染中,前端通过localhost向后端发送请求。在 DDoS 攻击期间(有来自流行服务的保护),请求从一开始就通过,在一分钟内保护“唤醒”并且攻击化为泡影。
问题在于,如果攻击具有非常高的峰值负载,则会发生以下情况。
ERROR EMFILE: too many open files, open '/*/*/*/app/client/static/img/image-1.svg'
ERROR EMFILE: too many open files, open '/*/*/*/app/client/static/img/image-2.png'
ERROR EMFILE: too many open files, open '/*/*/*/app/client/static/img/image-3.svg'
ERROR EMFILE: too many open files, open '/*/*/*/app/client/static/img/image-4.svg'
Run Code Online (Sandbox Code Playgroud)
客户端文件夹只是一个 nuxt 应用程序。
ERROR getaddrinfo ENOTFOUND localhost localhost:80 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
Run Code Online (Sandbox Code Playgroud)
除了在服务器渲染期间没有接收到数据之外,前端继续照常工作。因此,90% 的功能会失效。当您重新启动 nuxt 应用程序时,工作将完全恢复。nginx 和 php-fpm 日志中没有错误表明连接到本地主机有问题。
我必须马上说,增加打开文件数的限制并不能解决问题。以适当的攻击力,错误会再次出现。
我想了解 localhost 脱落的原因。如果不能在萌芽中解决问题,另一种选择是如何在 nuxt.js 中捕获此类错误以启动应用程序的重启?
提前致谢!
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |