首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-11-18 
浅谈Squid在图片存储架构中的应用将近快一个月没写文章了,太懒散了,今天振作了一下,写了篇关于Squid的文章

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

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

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

前言

上一篇我表明了自己对缓存的立场:缓存一切可以缓存的资源。并讨论了如何利用IIS自身的缓存功能来轻松满足中小规模的图片缓存需求。关于IIS的客户端缓存和服务器端缓存的介绍大家可以回顾这篇文章。自从上一篇文章发表后,有不少朋友向我反馈:用IIS自身的缓存功能负载有限,建议使用

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

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

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

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

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

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

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

?

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

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

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

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

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

Squid配置详细说明

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

?

注意:以上的配置说明来自这里。

?

配置好以后,我们就可以启动squid了,启动的步骤如下:

1). 我们可以运行下面的命令来检查配置文件的正确性:

# squid -k parse

只有这一步正确你才可以进行下一步的操作

2). 初始化cache目录.即建立缓存目录的存储格式

只需在第一次启动squid服务之前执行(在初次运行squid之前,或者无论何时你增加了新的cache_dir,你必须初始化cache目录。)

# squid -z

cache目录初始化可能花费一些时间,依赖于cache目录的大小和数量,以及磁盘驱动器的速度。假如你想观察这个过程,请使用-X选项:

# squid -zX

3). 启动squid服务

# service squid start

假定squid安装在/usr/local/squid目录下,也可以

# /usr/local/squid/sbin/squid -sD

最后,我推荐你去看看Squid权威指南,并希望你可以利用Squid成功搭建一个分布式图片缓存系统,Squid真的很棒!

原文链接:http://www.itivy.com/ivy/archive/2012/3/10/squid-usage.html

热点排行