请求过多如何导致服务器崩溃?

请求过多如何导致服务器崩溃?

我很奇怪网站为什么会崩溃。

如果服务器收到的请求过多,它可能会将该请求排在等待列表中,并在所有先前的请求都得到处理后再处理该请求。这意味着该网站的请求将得到处理,尽管可能需要比预期更多的时间。

那么,网站是如何因服务器过载而崩溃的呢?

答案1

网站不会“崩溃”。

Web 服务器配置为,如果请求队列中的请求超过预定数量,则停止接受新访问者。当达到此限制时,错误信息被展示。

503服务不可用

由于服务器暂时过载或维护,服务器目前无法处理请求。这意味着这是一种暂时的情况,经过一段时间的延迟后会得到缓解。如果已知,延迟的长度可以在 Retry-After 标头中指示。如果没有给出 Retry-After,客户端应该像处理 500 响应一样处理响应。

  Note: The existence of the 503 status code does not imply that a
  server must use it when becoming overloaded. Some servers may wish
  to simply refuse the connection.

答案2

在一个非常简单的情况下,等待列表可能会填满,并且服务器忙于处理/忽略新请求,以至于它可以有效地处理队列中的请求。

看一眼http://en.wikipedia.org/wiki/Denial-of-service_attack

答案3

有很多方法:

  • 服务器可用的带宽是有限的。如果攻击者能够用流量淹没目标网站的连接,他就可以让该网站下线。
  • “将请求排在等待列表中,并在所有先前的请求都已处理后为其提供服务”排队请求本身就需要时间。如果攻击者发送请求的速度比服务器排队的速度快,他就可以让网站下线。
  • Web 服务器依赖于其他资源,例如数据库服务器或文件系统。如果攻击者能够发送足够的请求来使数据库过载,他就可以关闭网站。

相关内容