1.squid 介绍

1.缓存服务器介绍

缓存服务器,即用来存储(内存及硬盘)用户访问的网页、图片、文件等等信息的专用服务器,这种服务器不仅可以使用户最快的得到他们想要的信息,而且大大减少了网络传输的数据量,缓存服务器经常是代理服务器。对于用户是不可见。

目前常见的缓存服务器软件:squid、varnish、nginx


2.cache 命中率

cache命中:

   1)在squid每次从它的缓存里满足HTTP请求时发生。cache命中率,是所有HTTP请求中命中的比例。Web缓存典型的cache命中率在30%到60%之间。另一个相似的度量单位叫做字节命中率,描绘了cache提供服务的数据容量(字节数)。

cache丢失:

在squid不能从它的缓存里满足HTTP请求时发生。cache丢失的理由有很多种。最明显的,

   1)当squid第一次接受到对特殊资源的请求时,就是一个cache丢失。 

     解决:预取

   2)类似的情况是,squid会清除缓存以释放空间给新对象。

     解决:磁盘尽可能大

   3)另外的可能是资源不可到达。原始服务器会指示cache怎样处理响应。例如,它会提示数据不能被缓存,或在有限的时间内才被重复使用,等等。

cache 确认:

   1)cache确认保证squid不对用户返回过时数据。在重复使用缓存对象时,squid经常从原始服务器确认它。假如服务器指示squid的拷贝仍然有效,数据就发送出去。否则,squid升级它的缓存拷贝,并且转发给客户。


3.squid 作用:

  1)反向代理

  2)正向代理(普通代理)

  3)透明代理

  4)web缓存


4.正向代理


1)内部用户想访问新浪网站,通过在浏览器设置指定的代理服务器。

2)内部用户连接到代理服务器(squid服务器)。

3)squid查看本地缓存是否有用户请求的资源,如果有,直接返回给用户。

4)如果本地缓存没有,squid则请求新浪,将请求的结果返回给用户,同时将内存缓存到cache

wKioL1W8eUazI5UFAADxNNv-CJ8461.jpg

 

5.反向代理

与正向代理正好相反,外部用户访问内部服务器

wKioL1W8eVzQnmARAADLGtLNkns013.jpg

 

1)外部用户想访问我们IDC服务器的网站。

2)外部用户首先请求带我们内部的代理服务器(squid服务器)。

3)squid查看本地缓存是否有用户请求的资源,如果有,直接返回给外部用户。

4)如果本地缓存没有,squid则请求新浪,将请求的结果返回给用户,同时将内存缓存到cache



6.透明代理

wKioL1W8eW6i_-7MAAETU1oTzQE889.jpg

 

1)内部用户请求访问新浪,不用在浏览器设置代理。

2)用户首先请求到防火墙,请求访问新浪的80端口。

3)防火墙将内部请求的80转发给squid代理服务器的3128端口。

4)squid服务器去查看cache是否有用户请求的内容,如果有,将内容通过防火墙发送给用户

5)如果没有,则缓存到cache里,同时将请求的结果通过防火墙送给用户