squid 缓存规则验证

                                                                                          

1. 测试环境

                                                

 

 

 

注意事项: 

     (1)服务器端得添加防火墙规则或者直接关闭,测试的话建议直接关闭!

     (2)保持源站,缓存服务器,客户端的时间同步,这个对后续测试缓存超时lm-factor算法精确度上有影响。


2 实测项目


2.1 请测试不匹配refresh_pattern或者hash_refresh_pattern任何规则的URI从返回后cache缓存的情况?

  

这里缓存服务器端采用默认squid.conf, 不添加refresh_pattern, hash_refresh_pattern 规则验证

 

2.2.1 源站没有指定Expires ,Cache-control等头信息

     测试客户端第一次请求,缓存服务器(后续简称CDN)是miss的,这时候会回源去取文件,再返回给客户端,之后将文件缓存下来。这时候其实有个默认的max-age产生,过期时间为259200秒。后续在这个缓存时间内,客户端的请求,CDN都会直接返回缓存文件,产生一次hit命中。超过这个缓存时间的请求,CDN会回源确认缓存文件是否有修改,有修改则先更新文件再返回客户端,没修改则直接本地缓存文件返回给客户端。



                                                                            客户端一次请求,CDN miss,回源取文件返回给客户端


                                                          CDN 上面抓到往host:www.pylt.com 的GET请求

注: 这里的max-age=259200



                            客户端的第二次请求,CDN直接是hit命中返回

2.1.2 源站指定no-cache

     对于源站指定no-cache,no-store等头信息时,CDN默认是不缓存,所以客户端的每次请求,CDN都会miss, 然后回源取文件返回客户端。



                                                  第一次请求miss



                                                 第二次请求也是miss



                               CDN 对客户端每次请求都抓到回源GET信息

2.1.3 源站指定max-age

      对于源站指定max-age信息,CDN这边会默认采用给定的max-age作为文件缓存时间,超过这个时间后,客户端如果有请求,CDN会发送带有If-Modified-Since头信息的请求回源确认文件是否修改,有修改则先更新文件再返回客户端,没修改则直接本地缓存文件返回给客户端,并产生一次hit命中。下面例子中,源站设置的max-age为60s


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值