Node.js Heroku上的服务器请求中断(H18)

Node.js Heroku上的服务器请求中断(H18),node.js,express,heroku,multipartform-data,Node.js,Express,Heroku,Multipartform Data,Heroku支持不是很有帮助(除了“添加更多日志会有帮助”之类的提示),所以让我在这里试试 最近我们遇到了很多503。使用curl复制503非常简单: curl —limit-rate=100 -s -X POST https://our.server.com/some/endpoint?[1-100] \ --header 'Content-Type: multipart/form-data; boundary=---------BOUNDARY' \ --data-binary

Heroku支持不是很有帮助(除了“添加更多日志会有帮助”之类的提示),所以让我在这里试试

最近我们遇到了很多
503
。使用
curl
复制
503
非常简单:

curl —limit-rate=100 -s -X POST https://our.server.com/some/endpoint?[1-100] \
   --header 'Content-Type: multipart/form-data; boundary=---------BOUNDARY' \
   --data-binary @test.txt
如果test.txt足够大(例如1Kb),Heroku将很快触发
503
(顺便说一句,它甚至不需要是多部分表单数据)。因此,我假设存在某种DDoS保护,即使在我们的dead simple Node.js+Express应用程序以及我同事的节点应用程序上也会发生这种情况

如果是这样的话-有没有办法使
503
错误静音?

这些问题最近开始困扰我们,因为我们的一个端点现在期望多部分数据(但我要重复——这不一定是多部分数据,它也可以通过application/json复制)。如果身份验证失败,我们将发送
401
。似乎这还不足以关闭多部分流

据我所知,Heroku对多部分流进行缓冲,导致某种缓冲区溢出,从而触发
503

代码:


结果表明,失败的原因是一个非常古老的原因(我从Heroku support获得了Taylor的链接)。显然,除了完全处理传入流之外,还没有解决这个问题

(...)
const router = require('express').Router()
// We are getting `401` for the first 10-100 requests, then -> 503 hopes in
router.post('/some/endpoint', async function (req, res, next) {
   return res.status(401).send('Test')
})
app.use('/', router)
(...)