基于 URL 的 Apache 带宽限制

基于 URL 的 Apache 带宽限制

我托管了一个图片共享网站,似乎遇到了一个不寻常的问题。我使用 Apache 模块 mod_rewrite 使每个图片的所有 URL 比原本的 URL 短得多,但这似乎阻止了其他模块(如 mod_bw 或 mod_bandwidth)的工作,因为用户在技术上并没有请求下载文件。

当有人上传 2mb 的动画 gif 时,我的问题就出现了。有时 gif 会占用服务器的所有带宽,导致我的网站无法使用。我需要一种方法来检测用户何时想要查看 gif,然后将他们的速度限制到更合理的水平。

我能想到的唯一办法是,如果某个 Apache 模块检测到 URL 末尾的 .gif,然后启动带宽限制。这可能吗?或者我还能做些什么?

答案1

您正在寻找mod_cband所需的东西。例如,您可以将其指令包装在 LocationMatch 容器中,用于 .gif 文件。如果出于某种原因,您正在运行旧的 Apache 1.3 查找mod_bandwidthmod_throttle代替。

http://codee.pl/cband.html

答案2

nginx有这个功能,可以让nginx成为Apache的反向代理。

示例代码:

location /download/ {
   limit_rate  10k;
}

相关内容