您的位置:首页 > 大数据 > 人工智能

cache_peer和cache_peer_domain详解

2015-07-07 23:07 956 查看
acl allowuser 192.168.1.1/32

cache_peer 192.168.1.50 parent 81 0 no-query originserver
weight=1 name=a

cache_peer 192.168.1.50 parent 82 0 no-query originserver weight=1 name=b
cache_peer 192.168.1.50 parent
80 0 no-query originserver weight=1 name=c

cache_peer_domain a www.serverA.com
cache_peer_domain b www.serverB.com

cache_peer_domain c www.serverC.com

#以上六行配置表示:

#从客户端过来的请求,如果是 www.serverA.com,则Squid向
Server 192.168.1.50的端口81发送请求;
#从客户端过来的请求,如果是 www.serverB.com,则Squid向
Server 192.168.1.50的端口82发送请求;
#从客户端过来的请求,如果是 www.serverC.com,则Squid向
Server 192.168.1.50的端口80发送请求;

#换句话说:设定不同域名转发到不同的cache_peer上,如果没有这项.不同的域名可能被分发到同一台服务

 器(或同一台服务器的端口)上.

#name=a表示给cache_peer一个别名

 

cache_peer_access a allow all

cache_peer_access b allow all

cache_peer_access c allow all

#设置访问权限,允许所有外部客户端访问 a b c

#如果是cache_peer_access a allow allowuser

#表示只允许allowuser访问 www.serverA.com

 

 

另一个例子:

acl user1 src
192.168.2.68/32

acl user2 src 192.168.2.94/32

#定义两个user IP

cache_peer 192.168.2.172 parent 80 0 no-query no-digest originserver name=www1  sourcehash

cache_peer 192.168.2.173 parent 81 0 no-query no-digest originserver name=www2  sourcehash

cache_peer_domain www1 www.domain.com

cache_peer_domain www2 www.domian.com

#表明对www.domian.com的请求,squid向192.168.2.172的80端口和192.168.2.173的81端口发出请求

cache_peer_access www1 allow user1

cache_peer_access www2 allow user2

#允许user1访问192.168.2.172的80端口

#允许user2访问192.168.2.173的81端口 

 

设置子父代理的cache_peer:

如果要设置父级的代理服务器,例如proxy.test.edu.cn那么可以这样配置
在#cache_peer hostname type 3128 3130 之下加入
cache_peer proxy.test.edu.cn parent 3128 3130 no-query no-netdb-exchange
 
如果要设置同级的代理服务器,如:192.168.1.41 192.168.1.42则可以这样来配置
cache_peer 192.168.1.41 sibling 3128 3130 proxy-only
....
注意目前各单位施行代理服务器分级管理,设置父级代理服务器,还必须取得上层单位的同意
 
说明:
(1)命令cache_peer的定义格式是:
cache_peer hostname type 3128 3130
hostname 是用来指定获取缓冲的PROXY主机的名字
type 是PROXY主机的类型,有以上PARENT SIBLING两种
3128:HTTP_PORT
3130:ICP_PORT
 
(2)附加配置选项(注意应为小写,配置时)
NO-QUERY:不做查询操作,直接获取数据
NO-NETDB-EXCHANGE:代理服务器之间不交互信息
NO-DIGEST:代理服务器之间不做摘要表查询,直接用ICP协议沟通(同级代理)
PROXY-ONLY:直接获取对方缓冲,转交给代理服务器的客户端,而不存入本地
ROUND-ROBIN:如果设置数部上层服务器,那么轮流查询父级服务器
LOGIN=USER:PASSWD:要求对方做帐号及密码验证,例如
cache_peer 192.168.1.41 sibling 3128 3130 login=kao:123456

举例:

以下为squid1机器上的配置

icp_port 3130

acl domian dst www.domian.com

acl squid2 src xx.xx.xx.xx

acl squid3 src xx.xx.xx.xx

http_access allow  squid2

http_access allow  squid3

1.配置 squid2、squid3 为其邻居,当 squid1 在其缓存中没有找到请求的资源时,通过 ICP 查询去其邻居中取得缓存

cache_peer squid2 sibling 80 3130

cache_peer squid3 sibling 80 3130

2.squid1的三个父节点,originserver 参数指明是源服务器,round-robin 参数指明 squid 通过轮询方式将请求分发到其中一台父节点;squid 同时会对这些父节点的健康状态进行检查,如果父节点down了,那么 squid 会从剩余的 origin 服务器中抓取数据。

cache_peer 192.168.1.1 parent 8080 0 no-query originserver round-robin name=www1

cache_peer 192.168.1.2 parent 8080 0 no-query originserver round-robin name=www2

cache_peer 192.168.1.3 parent 8080 0 no-query originserver round-robin name=www3

 

3.将 www.domian.com 域的请求通过 RR 轮询方式转发到三个父节点中的一个。

cache_peer_domain www1 domian

cache_peer_domain www2 domian

cache_peer_domain www3 domian

4.always_direct会导致所有请求都直接发送到原始服务器。而不会去查询sibling,对于www.domian.com这个域名不需要直接出去,而是要询问sibling。其余的域名,squid依然通过hosts去进行转发

always_direct allow !domain
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cache 测试 应用 squid