仅针对没有Cookie的请求显示服务器忙

时间:2016-06-04 20:01:37

标签: nginx apache2 varnish vcl http-status-code-503

我的网站经常因数千个客户的多个请求而过载。我无法扩展到无限的服务器,当前状态的应用程序无法处理流量。为了更好的安慰,我想首先让启动事务的客户端完成它,然后让其他客户端启动事务。我正在寻找一种解决方案,如何将HTTP请求分成两组:第一个能够完成交易的请求和其他应该接收503 Server忙网页的请求。

我可以同时处理一些交易量。我希望在服务器繁忙的网页上保留一段时间的其余事务。我以为我可以使用清漆。芽我无法在VCL中找到合适的条件。

我想在varnish中找到到后端的当前连接数。如果当前连接数将高于某个值(例如100)并且请求没有会话cookie,则响应将为503服务器忙。如果连接数甚至大于100,但会话cookie存在,则请求将传递给后端。

清漆VCL中的AFAIK我只能获得应该为真/假的后端(导演)的健康状况。但是当后端被认为不健康时,请求不会传递给它。当我使用max_connections到后端时,所有达到限制的连接都会出现503错误。

有没有办法如何使用varnish,ngingx,apache或任何其他工具实现此行为?

1 个答案:

答案 0 :(得分:0)

无论如何,您的内容是否必须是动态的?我运行的网站每天处理300到400万个独特的网站,并使用宽限模式等功能来处理失效。

也许另一种选择是ESI,Edge Side Includes,它可以通过缓存非动态的一切来帮助减少负载。