xiaobaoqiu Blog

Think More, Code Less

Squid学习

之前在处理图片下载延时比较大问题的时候,OPS说使用Squid这个东东,抽时间看看这个东西。

简而言之,Squid就是一个Web缓存代理服务器。

1.什么是代理服务器

代理服务器是介于浏览器和Web服务器之间的另一台服务器。有了该服务器之后,浏览器发出的信息会先送到代理服务器,由代理服务器来取回网页内容并传送给客户的浏览器。对于企业网络而言,代理服务器可以起到控制网络访问并屏蔽不安全信息,以及网络加速的目的。

2.Squid简介

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

Squid 是一个 Web 缓存代理,支持 HTTP, HTTPS, FTP, 以及更多。它通过缓存与重用经常请求的web页面,减少带宽使用同时提升了响应时间,并设置过滤。使用Squid可以通过访问控制特性来灵活的控制用户访问时间、站点等限制。

2.1 原理简介

客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到代理服务器。如果 Squid代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

2.2 缓存限制

Squid 代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要 HTTP 头标记:

Last-Modified: 告诉代理页面什么时间被修改
Expires: 告诉代理页面什么时间应该从缓冲区中删除
Cache-Control: 告诉代理页面是否应该被缓冲
Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache

3.Squid安装

(1).下载 squid,这里下载的是3.4版本 : http://www.squid-cache.org/Versions/v3/3.4/
(2).解压缩
```
xiaobaoqiu@xiaobaoqiu:~/Download$ tar -xzvf squid-3.4.11.tar.gz
```
(3).配置
(待续...)

4.参考

http://www.ibm.com/developerworks/cn/linux/l-cn-squid/