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

标签: squid 图片 架构 | 发表时间:2012-03-10 08:00 | 作者:nospam@nospam.com (秩名)
出处:http://www.kuqin.com/jingyan/

酷勤网 � 程序员的那点事!

前言

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

  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的配置清单及其说明:

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

正在加载推荐文章
图片存储架构学习:缓存,架构师的美丽小三(一)
图片存储架构学习:独立的图片服务器,给爱一个独立的空间
避免故事内容重复呈现之存储节点设置
iPhone云存储类应用盘点
Squid 与 RAID - 对图片服务器一文的补充
无觅相关文章插件,快速提升流量

[ comments ]

相关 [squid 图片 架构] 推荐:

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

- - 酷勤网-挖经验 [expanded by feedex.net]
酷勤网 � 程序员的那点事. 上一篇我表明了自己对缓存的立场:缓存一切可以缓存的资源. 并讨论了如何利用IIS自身的缓存功能来轻松满足中小规模的图片缓存需求. 关于IIS的客户端缓存和服务器端缓存的介绍大家可以回顾. 自从上一篇文章发表后,有不少朋友向我反馈:用IIS自身的缓存功能负载有限,建议使用.

电子商务网站基础架构 nginx + memcached + tomcat + squid 集群

- - 企业架构 - ITeye博客
本文中 包含 nginx memcached tomcat 集群 的安装和配置. wget url 为下载所需的资源文件方式,也可以通过 VMware Tools 工具载入,. 如何安装 VMwareTools 参考本博客或者其他资料. 后面最后一章节是安装配置squid 在项目第一期不作要求. 第一章 安装配置nginx.

stunnel + squid 过墙

- - 移动开发 - ITeye博客
一台国外的Linux服务器. 软件介绍:  squid 高性能代理服务器  stunnel  TSL加密工具,因为我们的http都是明文传输的,所以必须使用工具对内容进行加密,才能躲过嗅探.  修改 stunnel.conf 默认位置  /etc/stunnel/. 只需修改 cert  位置为刚才 生成  stunnel.pem 的位置.

TCmalloc对squid的性能的提升

- caoxg - 开心平淡对待每一天。热爱生活
           TCmalloc对squid的性能的提升一、简介:. 1、安装tcmalloc所需要的libunwind库 [32位系统不用安装]. *注意:据说加上’–with-large-files’ 选项时编译会出错. 4、配置好squid并启动squid.. squid+tcmalloc: 20 型号:Dell R410 硬盘:2*SAS/146G/15K 内存:16G CPU:16.

自建CDN技术选型: squid varnish nginx

- - 鲁塔弗的博客
CDN的全称是Content Delivery Network,即内容分发网络. 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定. 优化跨ISP网络访问速度,在国内大联通和大电信之间是世界上最远的距离,在国外,中国和其他地区很平行,用cdn可以优化全球响应速度.

squid,nginx,lighttpd反向代理的区别

- - 企业架构 - ITeye博客
[转载自]http://www.cnblogs.com/yihang/archive/2010/12/19/1910363.html. squid,nginx,lighttpd反向代理的区别. 反向代理从传输上分可以分为2种:. 1:同步模式(apache-mod_proxy和squid). 2:异步模式(lighttpd 和 nginx).

Facebook图片存储架构的学习

- - 标点符
分享照片是Facebook上最流行的的功能之一. 截至目前,用户已经上传超过15亿张照片,这使得Facebook成为最大的照片共享网站. 对于每一个上传的照片,Facebook都生成并存储四个大小不同的图像,从而转化为共60亿张照片,总容量超过1.5PB. 目前以每周220万新照片的速度增长,相当于每周要额外增加25TB存储.

图片服务架构学习之ZIMG

- - 标点符
zimg是一套国人针对图片处理服务器而设计开发的开源程序,目的是解决图片服务中如下三个问题:. 大流量:对于一些中小型网站来说,流量问题就是成本问题,图片相对于文本来说流量增加了一个数量级,省下的每一个字节都是白花花的银子. 所以凡是涉及到图片的互联网应用,都应该统筹规划,降低流量节约开支. 高并发:高并发的问题在用户量较低时几乎不会出现,但是一旦用户攀升,或者遇到热点事件,比如网站被人上传了一张爆炸性的新闻图片,短时间内将会涌入大量的浏览请求,如果架构设计得不好,又没有紧急应对方案,很可能导致大量的等待、更多的页面刷新和更多请求的死循环.

图片服务架构演进

- - 博客园_知识库
  现在几乎任何一个网站、Web App以及移动APP等应用都需要有图片展示的功能,对于图片功能从下至上都是很重要的. 必须要具有前瞻性的规划好图片服务器,图片的上传和下载速度至关重要,当然这并不是说一上来就搞很NB的架构,至少具备一定扩展性和稳定性. 虽然各种架构设计都有,在这里我只是谈谈我的一些个人想法.