打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
cache_peer(forceddomain)参数的应用
userphoto

2009.07.01

关注

cache_peer(forceddomain)参数的应用

初学Squid的朋友可能会发现Squid并非万能的,有很多网站其无法逆向代理。例如逆向代理另一个经过Squid缓存的网站,或是一个绑定了主机头的虚拟主机。

      例子:在Squid中将123.jstzsb.cn这个二级域名指定给www.123.com这个网站(假设该网站经过了Squid缓存)

      通常的配置
cache_peer www.123.com parent 80 0 no-query originserver no-digest name=cache1
cache_peer_domain cache1 123.jstzsb.cn
      这样配置用浏览器访问123.jstzsb.cn就会提示无法连接上级缓存服务器

      这是为什么呢?让我们看一下www.123.com的Squid配置
cache_peer 192.168.1.1 parent 80 0 no-query originserver no-digest name=cache1
cache_peer_domain cache1 www.123.com
      问题出来了123.com的主机配置规则仅接受主机头为www.123.com的连接请求

      我们假设123.jstzsb.cn的主机为Squid_A,www.123.com的主机为Squid_B,请看访问流程:
       浏览器提交123.jstzsb.cn的请求->Squid_A接受到请求- >Squid_A对比规则成功开始将该请求提交给www.123.com->Squid_B接受到来自Squid_A的一个请求其主机头为 123.jstzsb.cn->Squid_B对比发现无法匹配其cache_peer_domain中的规则->Squid_B放弃响应

      难道就没有办法在Squid_A请求时将主机头信息替换成www.123.com吗?答案是有。
只需在Squid_A上的cache_peer www.123.com 80 0 no-query originserver no-digest name=cache1的最后加上forceddomain=www.123.com即可,这样Squid_B接受到的主机头信息就匹配其 cache_peer_domain中的规则了,逆向代理也自然能成功了。

      forceddomain参数顾名思义是域名强制转换,这就能为我们做很多事,例如一个网站有很多域名。例如:
www.abc.com/www.abc.cn/www.abc.org 同时指向一个主机,如果不使用forceddomain参数Squid缓存里往往要缓存三个不同域名而内容相同的信息,这不仅降低了Squid的性能也影响其命中率。只要在配置parent的主机时添加forceddomain=www.abc.com参数,就能将所有其他域名的请求统一转为访问 www.abc.com

      forceddomain英文注释:
use 'forceddomain=name' to forcibly set the Host header
of requests forwarded to this peer. Useful in accelerator
setups where the server (peer) expects a certain domain
name and using redirectors to feed this domain name
is not feasible.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
嘻嘻哈哈的部落格(blog) ? 用squid2.6反向加速多个web网站
squid反向代理缓存安装配置
Linux上squid服务的配置
Squid 高级优化指南_cdn加速
这两个插件让洛杉矶的WordPress网站在大陆秒开
大型网站:前端性能优化和规范
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服