[squid] 对源网站进行限速

Jan 20th, 2010

转载本站文章请注明,转载自:扶凯[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的文件没有作用

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. coolzsb
    Jan 20th, 2010 at 09:38
    Reply | Quote | #1

    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. coolzsb
    Jan 20th, 2010 at 09:41
    Reply | Quote | #2

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

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

    请扶凯同学帮我修改之

    签名

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

  3. admin
    Jan 21st, 2010 at 03:18
    Reply | Quote | #3

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

  4. apparitor
    Jan 26th, 2010 at 02:00
    Reply | Quote | #4

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

  5. 小桥流水人家
    Mar 6th, 2010 at 14:08
    Reply | Quote | #5

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

  6. admin
    Mar 6th, 2010 at 18:32
    Reply | Quote | #6

    出口直接做路由就行

  7. 小桥流水人家
    Mar 7th, 2010 at 06:25
    Reply | Quote | #7

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

  8. 小桥流水人家
    Mar 7th, 2010 at 11:44
    Reply | Quote | #8

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