2011-07-11 50 views
2

我看着mod_bandwidth和mod_cban,但他们似乎不满足我的要求。限制每个连接/ ip的Apache Proxy上传速度?

我使用apache 2.2(mod_proxy,proxy_http,proxy_connect)运行代理服务器。

我想限制“客户端的上传速度”。

这是在同一时间服务器下载带宽,应该不受限制。

我希望每个连接都有它,甚至更好。

为了使其理解:使用案例是我不希望坏人利用我的代理服务器将坏数据升级到坏的地方来“掩盖”自己。当然,我有日志和其他所有东西,但是我想先解决这个问题,让它变得没有吸引力。

为了更好地理解这是我设置的图片:

enter image description here

过程中的红色箭头也可以指向左上角的箭头。

我目前正在考虑在不同端口上的同一台服务器上启动两次Apache,并使用ProxyRemote将请求发送到其他代理。所以在第二个代理上,我可以从限制中排除localhost。不过,我仍然需要一个解决方案来限制传入但不传出的带宽。我可以通过IPtables认识到这一点。

但说实话?一定会有更好的办法。只需要。

+0

你有没有考虑过在你的Apache前放一个Squid服务器?我认为这是相对轻量级和无痛的。 [延迟池](http://wiki.squid-cache.org/Features/DelayPools?highlight=%28delay_pools%29)功能似乎可能是您要查找的内容。 – TomNysetvold

回答

3

安装mod_bw

内,您的虚拟主机地址:

BandWidthModule On 
ForceBandWidthModule On 
BandWidth 192.168.0.0/24 0 
BandWidth all 80000 

192.168.0.0/24 0应该是你的IP和子网规则。 0意味着它获得0节流(本地用户获得全速,你可以扩展这个做像国家,大学,等等)。 BandWidth all 80000表示其他人都被限制在80 000字节/秒。

Source.

+0

问题是,在这种代理情况下,速度手势在两个方向上都受到限制 –

+0

@JoeHopfgartner您也可以在linux中使用iptables,但这是另一方面更多的服务器管理问题。 – Incognito

+0

我认为iptables是一个很好的解决方案 –