我有文件下载网站。我所寻找的是限制每个IP的带宽(!)。应该通过后端的HTTP头动态设置限制。
我当前的实现使用X-Accel-Limit-Rate (我可以更改该标头,它不是任何地方的硬编码),但它确实只限制当前的连接/请求。
我的想法在G-Wan是否可行?
答案 0 :(得分:1)
是的,这可以做到。
编写G-WAN处理程序以提取X-Accel-Limit-Rate
HTTP标头。然后,使用throttle_reply()
G-WAN API调用documented here强制执行此策略。
一个名为throttle.c的示例可能对您有所帮助。
throttle_reply()
G-WAN功能允许您在全球或 每个连接 上应用限制,因此您只需根据您的需要,应用IP addresses
或authenticated users
的相关限制值。
throttle_reply()
可以在每个连接的生命周期内动态更改的下载速度,这样您就可以减慢旧连接的速度并创建具有自适应下载速率的新连接。
当然,这可以在每个客户端IP地址(或cookie,甚至ISP / Datacenter AS记录)上强制执行,以处理大量工作负载。