如何防止快递在我不回复请求时发送“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 error - 上游从上游读取响应标头时发送的标头太大