我有一个Apache服务器,为mod_wsgi提供一个django应用程序。 我想知道是否有一个简单的方法来抑制在Apache的水平基于机器的负载的请求。
理想情况下,我想要一个Apache模块,如果负载低于某个数字,一切正常。 但是,如果负载高于某个值,则X%的IP地址将在Y分钟内被提供给静态HTML页面。 这个软件是否存在?
我们正在寻找一个“穷人的节stream系统”。 我们可以快速轻松地进入。基于机器负载的节stream是好的,因为这意味着事情最终会恢复正常。
我们的Web应用程序做了很多处理,所以限制带宽的东西不会在这个上面起作用,它不是我们想要“扼制”的带宽,而是请求。 理想情况下,我们希望一些现有的请求(即基于IP地址)能够持续一定的时间(以便他们可以完成他们的工作)。
我从来没有设置过自己,我很欣赏这不是你正在寻找(即它不是一个Apache模块),但有一个工具称为交通控制。 由于tc是由一个简单的命令行调用的,因此您可以将它集成到您自己的脚本中,并根据从顶部的负载输出或任何其他监视负载来激发您想要的节stream。
这个页面上有一个脚本示例: http : //wiki.openvz.org/Traffic_shaping_with_tc
免责声明:我是一个清漆fanboy。
我不知道有任何官方的apache模块在本地执行此操作。
如果后端(django)在指定的时间内没有响应, varnish可以提供静态html。
如果你真的想根据平均负载为10%的访问者提供静态文件,我想可以用vmod来完成(我猜你必须自己写)。