squid对源网站进行限速

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2010/01/20/squid-delay_pools.html

今天测试了一下squid使用delay_pools来对源网站的访问进行限速.非常好用,如下

使用squid建二个源网站

 

acl php-oa url_regex -i ^http://.*php-oa.com/.*
acl sudo-u url_regex -i ^http://.*sudo-u.com/.*
http_access allow mysite
http_access allow sudo-u
http_access deny all
icp_access allow all

下面开始正文,我们要用到squid中的delay_pools,delay_pools里可以定义多个容器(多个源定义多个),而这个容器就是我们要控制的带宽,当容器到达所设定的容量时,这个容器的所有者就无法超过我们所设定的带宽限制.

 

开始设置squid的delay_pools

 

delay_pools 2  #设置二个pools来对二个源进行控制
 
delay_class 1 2    #设置第一个pools中的地址为C类网段中的每个IP地址流量
delay_access 1 allow php-oa
delay_access 1 deny all
delay_parameters 1  64000/64000 64000/32000   #连接php-oa总速度64000,每个ip可以3200的速度
 
delay_class 2 1
delay_access 2 allow sudo-u
delay_access 2 deny all
delay_parameters 2 32000/16000 #客户端下载sudo-u.com这个网站的总速度为1600,但squid连接源网站速度为32000

 

class定义:

class类型1为单个IP地址流量
class类型2为C类网段中的每个IP地址流量
class类型3为B类网段中的每个C类网段中的每个IP地址流量

delay_parameters语法:

类型1只有一个总带宽流量实际也就是这个IP地址的流量
delay_parameters pool total
例:delay_parameters 1 64000/64000

类型2有两个带宽流量参数,第一个为整个C类型网段流量,第二个为每个IP流量
delay_parameters pool tatal per-host
例:delay_parameters 1 -1/-1 64000/64000

类型3有三个带宽流量参数,第一个为整个B类网总流量,第二个为每个B类网段中的C类网段总流量,第三个为了B类网段中每个C类网段中的每个IP流量
delay_parameters pool total network per-host
例:delay_parameters 1 -1/-1 -1/-1 64000/64000

注:  -1/-1表示流量无限制.每个delay_parameters的数值是由"回源站的速度/客户最大下载速度"组成
  另外,对HIT的文件没有作用

8 条留言

我要留言
  • 1 F

    coolzsb  |  2010/01/20 05:05 上午  

    delay_parameters 2 32000/16000 #客户端下载sudo-u.com这个网站的总速度为1600,但squid连接源网站速度为32000

    这个说法貌似可以修改一下,应该是这样的:每客户端下载sudo-u.com这个网站的速度被限制为16000×8=128000bps — 但是,这个限制是在这个客户端从sudo-u.com下载了16000 byte字节之后才会开始限制的。鉴于如果真的是要下载东西,一般下载的东西总会大于16kbyte的,所以,基本上每个客户下载的速度都是被限制为128kbps的。

    所以,对于反向代理的设置,这样基本上算是合理的。如果是正向代理的话,那么 delay_parameters 2 32000/16000 后面的这个16000就需要根据实际的带宽情况做一个合理的调整了。

    签名

    squid的参数解释起来真痛苦

    签名

    扶凯同学你最近应该不怎么需要玩squid了吧?

  • 2 F

    coolzsb  |  2010/01/20 05:05 上午  

    上面的限制的说明一时手快打错了,应该是

    每客户端下载sudo-u.com这个网站的速度被限制为32000×8=256000bps— 但是,这个限制是在这个客户端从sudo-u.com下载了16000 byte字节之后才会开始限制的。鉴于如果真的是要下载东西,一般下载的东西总会大于16kbyte的,所以,基本上每个客户下载的速度都是被限制为256kbps的。

    请扶凯同学帮我修改之

    签名

    已经开始人老眼花了~~~

  • 3 F

    admin  |  2010/01/20 05:05 上午  

    我好久好久不玩squid了。。。。。。一年多了

  • 4 F

    apparitor  |  2010/01/20 05:05 上午  

    很想看一下你的 squid优化的那篇文章。
    如果不方便,能否有些提示!。

  • 5 F

    小桥流水人家  |  2010/01/20 05:05 上午  

    兄台,请教一下,假如本机有2个IP,socks5或squid都可以,如何控制出口的IP呢?

  • 6 F

    admin  |  2010/01/20 05:05 上午  

    出口直接做路由就行

  • 7 F

    小桥流水人家  |  2010/01/20 05:05 上午  

    扶凯麻烦发个邮件给我,有问题请教!

  • 8 F

    小桥流水人家  |  2010/01/20 05:05 上午  

    扶凯啊,紧急问题,希望你能伸手帮一把啊 -_-|

(必填)
(必填,绝不公开)