如何防止快递在我不回复请求时发送“502 Bad Gateway”?

Posted

技术标签:

【中文标题】如何防止快递在我不回复请求时发送“502 Bad Gateway”?【英文标题】:How to prevent express from sending "502 Bad Gateway" when I don't answer a request? 【发布时间】:2018-05-11 23:35:54 【问题描述】:

对于使用 express 4 服务器的特殊用例(强制客户端,不响应 503 状态代码重复请求),我根本不需要响应客户端请求。

但是 Express 在 apr 之后发送了 502 Bad Gateway。 2分钟,当我只是省略发送结果时。我怎样才能做到这一点?

我试图赶上超时,但这无济于事:

app.use((req, res, next) => 
  if (!req.timedout) 
    next();
    return;
  

  console.log('Timeout!')
);

【问题讨论】:

所以你明确需要 node.js 处理这个请求?你不能在更高级别过滤它吗? (nginx / apache 服务器,防火墙?) 没有。我需要响应 node.js 服务器中的某些条件。 有趣的问题。可能 express 本身不允许这样做,但是您可能能够播放和销毁 node.js 连接的相应套接字(对我来说看起来很脏)。如果你不能这样做,你可以在这种情况下设置一个特殊的自制响应代码,并使用服务器上的其他管理工具过滤 response,而不是尝试过滤请求。 顺便说一句,这个答案可能对你有用:***.com/a/46157120/479251(禁用 http 模块中的超时) 为什么不忽略客户端的响应?或者你可能不负责? 【参考方案1】:

如果我没有正确理解问题,请告诉我...

您可以使用res.end();。这将结束请求。

【讨论】:

这将发送一个 HTTP 状态码。而我想避免的;-)

以上是关于如何防止快递在我不回复请求时发送“502 Bad Gateway”?的主要内容,如果未能解决你的问题,请参考以下文章

打开网页出现502 bad gateway 如何解决

linux中http启动时502 bad getway

502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大

Nginx 502 Bad Gateway如何解决

如何解决 Nginx “proxy_pass 502 Bad Gateway”错误

502Bad Gateway