squid 2.6 round-robin分发后无法限制域名
原有的配置文件如下 cache_peer 10.11.12.51 parent 80 0 no-query ori...
扫描右侧二维码阅读全文
14
2008/08

squid 2.6 round-robin分发后无法限制域名

原有的配置文件如下

cache_peer 10.11.12.51 parent 80 0 no-query originserver round-robin name=web1 cache_peer 10.11.12.52 parent 80 0 no-query originserver round-robin name=web2 cache_peer 10.11.12.53 parent 80 0 no-query originserver round-robin name=web3 cache_peer 10.11.12.54 parent 80 0 no-query originserver round-robin name=web4 cache_peer 10.11.12.160 parent 80 0 no-query originserver name=content cache_peer 10.11.12.150 parent 80 0 no-query originserver name=bbs cache_peer 172.16.10.140 parent 80 0 no-query originserver round-robin name=game1 cache_peer 172.16.10.141 parent 80 0 no-query originserver round-robin name=game2 cache_peer_domain contentchina content.web.com cache_peer_domain bbs bbs.web.com cache_peer_domain game1 game2 game.web.com cache_peer_domain web1 web2 web3 web4 .web.com cache_peer_domain web1 web2 web3 web4 web.com

设定不同的二级域名分发到不同的服务器上.
www.web.com能够正确访问.
查看后台链接.每次访问时squid也会正常去连parent服务器,每次都轮询访问
测试game.web.com
返回有很多内容都是404
但是单独访问140以及141都是没有问题
然后发现很多链接分发到了其他web服务器上
看了说明.里面提到round-robin参数会设置一组随机的访问
感觉是写了round-robin的都是一个组
所以将game的去掉round-robin参数

cache_peer 172.16.10.140 parent 80 0 no-query originserver name=game1 cache_peer 172.16.10.141 parent 80 0 no-query originserver name=game2

访问后仍旧发现还是有分发错误的情况
再次查看squid.conf.default
里面的cache_peer_domain的语法如下

# cache_peer_domain cache-host domain [domain ...] # cache_peer_domain cache-host !domain

感觉是否是因为cache-host这里只能写一台服务器而非一组的关系
随将配置文件修改

cache_peer 10.11.12.51 parent 80 0 no-query originserver round-robin name=web1 cache_peer 10.11.12.52 parent 80 0 no-query originserver round-robin name=web2 cache_peer 10.11.12.53 parent 80 0 no-query originserver round-robin name=web3 cache_peer 10.11.12.54 parent 80 0 no-query originserver round-robin name=web4 cache_peer 10.11.12.160 parent 80 0 no-query originserver name=content cache_peer 10.11.12.150 parent 80 0 no-query originserver name=bbs cache_peer 172.16.10.140 parent 80 0 no-query originserver round-robin name=game1 cache_peer 172.16.10.141 parent 80 0 no-query originserver round-robin name=game2 cache_peer_domain contentchina content.web.com cache_peer_domain bbs bbs.web.com cache_peer_domain game1 game.web.com cache_peer_domain game2 game.web.com cache_peer_domain web1 .web.com cache_peer_domain web2 .web.com cache_peer_domain web3 .web.com cache_peer_domain web4 .web.com cache_peer_domain web1 web.com cache_peer_domain web2 web.com cache_peer_domain web3 web.com cache_peer_domain web4 web.com

修改后访问game.web.com
问题解决.没有出现404
后台的分发很正常
可能由于cache-host这里写了一组
导致squid并无法辨识进行针对性的分发
随即将所有的分发都分发到所有round-robin服务器上.
因为www.web.com后端的服务器较多.命中的概率较大.
而命中后第二次取出文件即是squid中的缓存文件,所以访问www.web.com时没有发现问题
而game.web.com因为真实服务器比例较小
分发时很多链接分发到其他web服务器.
导致反馈回很多404

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. woiweb

    我的都是在同一机器上,能否做到转发不到不 同的tomcat?

  2. pher

    你好,近来也在学习SQUID做负载均衡,不过对配置文件不太懂,你好像贴出来是一部分,不知道其它部分能不能共享一下。
    谢谢,附 E妹儿: zhang5739@vip.qq.com

Leave a Comment