免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4432 | 回复: 4

[proxy] 如何让Squid先询问sibling [复制链接]

论坛徽章:
0
发表于 2007-09-01 08:19 |显示全部楼层
20可用积分
为web服务器配置了一对儿squid,期望它们能相互补充那些没有被直接命中的页面请求,尽量减少对web的直接请求。
结果发现它们总是优先去原始服务器取内容,sibling之间根本互不搭理。
环境如下:
web服务器一台,IP为 192.168.100.220
squidA,和squidB,
A的ip是192.168.100.104
A的ip是192.168.100.105

A的配置如下

http_port 192.168.100.104:80 vhost vport
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer 192.168.100.105 sibling 80 1234 default
cache_peer_access 192.168.100.105 allow  all
cache_peer 192.168.100.220 parent 80 0 no-query originserver no-digest
icp_port 1234
htcp_port 0
icp_access allow all
digest_generation on
icp_hit_stale   on

对于A而言,他的兄弟是B(ip为192.168.100.105,icp端口1234)
对于B而言,配置类似,所以B的配置文件就不写了,只是和A有一点区别。B知道原始服务器,开启了icp端口并acl都允许,唯一不同的是,它不会向A询问页面是否命中,因为如果它也问A,那就形成了一个循环。(A ----请求b----> B ---- 请求A----〉 ----请求b)。

现在我向B发送请求,使得http://www.test.com/5.php被 hit (日志中已经确认此行为,从客户端wget -S --spider http://www.test.com/5.php的结果看也确实hit了)
但是我一旦向A请求,A总是去向原始服务器索取内容,并不向B询问,
SquidA中的access日志如下:

1188601387.540     11 192.168.100.12 TCP_MISS/200 470 HEAD http://www.test.com/5.php - FIRST_UP_PARENT/192.168.100.220 text/html

1188601390.301      0 192.168.100.12 TCP_MEM_HIT/200 431 HEAD http://www.test.com/5.php - NONE/- text/html


A总是优先 FIRST_UP_PARENT跑到web服务器去取数据了,我急切的想向各位请教,如果让SquidA在Miss的情况下,现问问B,然后再考虑是否向web服务器提取原始内容

论坛徽章:
0
发表于 2007-09-01 08:38 |显示全部楼层
A机和B机的icp端口都处于udp协议之Listen状态

在看了Squid中文权威指南的第10章-----10.10归纳所有 这一节之后,决定试试让SquidA永远不要去连接原始服务器,

我觉得,既然明确说明了,永远不要到web服务器去,那总应该选一个sibling了吧?然后根本不像10.10.2所说开始检查邻居的 Cache 摘要。假如摘要指示 cache 命中,该邻居就放到下一跳列表
可日志上即使出现了 DEFAULT_PARENT 也从没有出现 SIBLING_HIT
请教各位,很急切,很真诚,如果需要冰天雪地三百六十度什么之类,小弟也能够的……

[ 本帖最后由 zhouyong488 于 2007-9-1 08:52 编辑 ]

论坛徽章:
0
发表于 2007-09-03 16:23 |显示全部楼层
......郁闷,你都说SquidA不不知道原始服务器了,又怎么连?你改下让SquidA连接squidb 读内容不就行了。。。还冰天雪地三百六十度什么之类。。。。。。。。

论坛徽章:
0
发表于 2007-09-03 21:20 |显示全部楼层
cache_peer后指明cache_peer_domain,改为这样再试试。

  1. cache_peer 192.168.100.105 sibling 80 1234 default
  2. cache_peer_domain 192.168.100.105 .test.com
  3. cache_peer 192.168.100.220 parent 80 0 no-query originserver no-digest
  4. cache_peer_domain 192.168.100.220 .test.com
复制代码

论坛徽章:
0
发表于 2007-10-30 10:43 |显示全部楼层
http_port 192.168.100.104:80 vhost vport
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer 192.168.100.105 sibling 80 1234 default  sibling 没有 default 这种写法
cache_peer_access 192.168.100.105 allow  all
cache_peer 192.168.100.220 parent 80 0 no-query originserver no-digest
icp_port 1234
htcp_port 0
icp_access allow all
digest_generation on
icp_hit_stale   on


要 squid 去访问 peer 定义的主机,需要几个条件
首先检查 allways_direct 是否匹配
其次检查 never_direct 是否匹配
这两个是最基本的,然后还有 minimum_direct_hops  和  minimum_direct_rtt 也会影响到 peer 选择
这些可以通过编译选项开关来去掉.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP