当前位置: 网学 > 编程文档 > 其他类别 > 正文

浅谈Squid在图片存储架构中的应用

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12

从我的独立博客中同步过来的,一起探讨

将近快一个月没写文章了,太懒散了,今天振作了一下,写了篇关于Squid的文章,Squid作为分布式代理缓存服务器真的非常的棒,希望本文对你有帮助。

版权声明:非商业自由转载,保留原文内容完整性,并署名作者王国峰和原文链接

前言

上一篇我表明了自己对缓存的立场:缓存一切可以缓存的资源。并讨论了如何利用IIS自身的缓存功能来轻松满足中小规模的图片缓存需求。关于IIS的客户端缓存和服务器端缓存的介绍大家可以回顾这篇文章。自从上一篇文章发表后,有不少朋友向我反馈:用IIS自身的缓存功能负载有限,建议使用Varnish或Squid。是的,我非常同意,所以我今天就和大家来探讨一下分布式代理缓存服务器Squid在图片存储架构中的应用,文中的一些观点,如有错误,敬请指出,谢谢。

Squid简介

Squid是一款高性能分布式代理缓存服务器,它一般用来做前置Web Cache,加快用户访问Web的速度。为了说明其运行过程,我将仍旧沿用我前一篇的YD风格,再一次请出人见人爱、花见花开、车见爆胎的空空老师,请读者自觉送出掌声:

Squid君是时下最受欢迎的空空作品代理人,为了让所有空空迷能更快捷地欣赏到高质量的空空作品,Squid君天天加班加点,整理和保存空空的最新作品,并对其作进一步的优化处理,比如去码。

有一天,我无聊至极,便打电话给Squid君,向他要最新的空空写真图(向Squid发出下载请求);

Squid君仔细辨别了一下我的声音,发现是老朋友,于是便答应了我的请求(Squid中的ACL访问控制,只接受合法的请求);

Squid君对我说他手头刚好有一周前的空空写真,问我看过没有,我说发过来看看呗,于是他很快发给了我(Squid缓存命中,下载极快,哦耶!);

我收到写真图,发现是两天前已经看过了的,于是告诉Squid君要最新的,Squid君看了看库存,发现手头没有最新的了,于是就说让我等一会儿,他去问问其他的代理兄弟有没有,我说好的,谢谢(Squid支持分布式集群方式,各个父子节点、兄弟节点之间的缓存数据可以互相同步);

结果空欢喜一场,他回来和我说其他兄弟也没有,当我非常失落的时候,他突然说空空今天来杭州,他可以直接向空空要写真,我一开心就对他说,快去快去(当Squid缓存不命中时,只能从源服务器获取数据);

过了好久,Squid君回来了,他说见空空的人实在太多了,排了好久的队才拿到她最新的写真图呢,我谢过之后他就把写真很快地发给了我。之后他说他一定要把这个写真保存起来,以便提供给其他空空迷和其他兄弟代理(Squid会把从源服务器获取的数据保存到自己的缓存中,如果下一个用户提出同样的下载请求,Squid直接把缓存中的数据给用户,当然也可以把数据奉送给其他兄弟代理,独乐乐不如众乐乐)。

到这里,我相信你已经大概明白Squid的工作过程了吧,下面我就对Squid特点做一下简要概括:

  1. 开源,基于GNU通用公共许可证,意味着你可以在同等开源协议下使用和修改Squid。
  2. 支持多种协议,目前支持http、ftp、gopher、wais、ssl等网络协议。
  3. 支持分布式集群,Squid使用TCP(HTTP)和UDP(ICP/HTCP)通讯来确定邻居cache的状态。
  4. 支持访问控制,通过设置ACL和ARL来限制某些访问。

Squid官方网站:http://www.squid-cache.org/

你可以在官网上下载Squid以及阅读相关文档,当然接下来我也会用Chinese向大家介绍Squid的用法。

Squid配置详细说明

下面是一份详细的Squid的配置清单及其说明:

  1. #http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128  
  2. http_port 3128  
  3. icp_port 3130  
  4.    
  5. #缓存目录的设置,可以设置多个缓存目录,语法为:<cache_dir> <aufs|ufs> <目录所在> <MBytes大小> <dir1> <dir2>  
  6. cache_dir ufs /var/spool/squid 1000 64 1024  
  7.    
  8. #下面是关于日志文件的放置目录与文件名!  
  9. cache_access_log /var/log/squid/access.log  
  10. cache_log /var/log/squid/cache.log  
  11. cache_store_log /var/log/squid/store.log  
  12. pid_filename /var/run/squid.pid  
  13.    
  14. #关闭认证机制,有些版本的 squid 会自动的加入代理认证机制,而普通情况下是不需要的,故找到包括auth_param的行,给它们加上注释  
  15. #auth_param basic children 5  
  16. #auth_param basic realm Squid proxy-caching web server  
  17. #auth_param basic credentialsttl 2 hours  
  18.    
  19. #设置squid用户及用户组、管理员账号  
  20. cache_effective_user squid  
  21. cache_effective_group squid  
  22. cache_mgr youraccount@your.e.mail  
  23.    
  24. # 与内存有关的配置:因为我的系统内存很小,所以只给 8 MB!如果您的物理内存很大的情况下,例如 512 MB,可以考虑加大到 64 或 128 MB。  
  25. cache_mem 128 MB  
  26.    
  27. # 与磁盘容量有关的配置(注:下列的 90 与 95 是百分比 ),如果您的 cache_dir 所在磁盘很大时,可以考虑将 4096 改成 32768 KB  
  28. cache_swap_low 90  
  29. cache_swap_high 95  
  30. maximum_object_size 4096 KB  
  31.    
  32. # 与内存保存资料有关的配置  
  33. maximum_object_size_in_memory 8 KB  
  34.    
  35. #定义acl(访问控制列表), 语法为:acl<acl> <acl名称> <acl类型> <配置的内容>  
  36. #黑体为用户自定义部分  
  37.    
  38. acl All src 0/0  
  39. acl Manager proto cache_object  
  40. acl Localhost src 127.0.0.1/32  
  41. acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535  
  42. acl SSL_ports 443 563  
  43. acl CONNECT method CONNECT  
  44. acl MyNetwork src 192.168.0.0/16  
  45.    
  46. #利用前面定义的acl,定义访问控制规则  
  47. http_access allow Manager Localhost  
  48. http_access deny Manager  
  49. http_access deny !Safe_ports  
  50. http_access deny CONNECT !SSL_ports  
  51. http_access allow MyNetwork  
  52. http_access deny All  
  53.    
  54. #定义与其它代理服务器的关系,语法: <cache_peer> <主机名称> <类别> <http_port> <icp_port> <其它参数>  
  55. cache_peer 192.168.60.6 parent 4480 7 no-query default 
  56.    
  57. #设置与其它代理服务器的关系:  
  58. # <cache_peer_access> <上层 Proxy > <allow|deny> <acl名称>  
  59. #cache_peer_access 192.168.60.6 allow aclxxx  
  60. #cache_peer_access 192.168.60.6 deny !aclxxx  
  61.    
  62. coredump_dir /var/spool/squid 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号