1、缓存服务器介绍
- 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的 页,图片,文件等等信息的专用服务器。这种服务器不仅可以使用户可以最快的得到他们想要的信息,而且可以大大减少服务端 络传输的数据量。缓存服务器往往也是代理服务器。对于 站的用户来说,缓存服务器和代理是不可见的,即在用户看来所有的 站信息都来自其正在访问的 站,而实际上可能是缓存服务器在提供访问数据。
- 目前国内互联 公司常用的缓存服务器有:squid,varnish(几乎绝迹),nginx,ats。
- squid作为缓存和代理服务器的历史十分的悠久,本章我们主要讲述squid服务,尽管不少人谈及其他软件的缓存机制比squid如何优异,但我们还是要首先掌握这个老牌的开源cache软件,因为它经历的历程实在是太悠久了,等大家掌握了squid服务后,其他的软件就不在话下了。如果再有时间,可以测试下varnish,nginx,squid三者之间的性能对比,而不是轻易的听信于他人的说法,别人说好,只能代表他个人的观点,我们自己用事实证明,才是学习和工作的真谛。
- 国内基本上90%以上的商业CDN公司,象国内的CDN基本都在用squid,象蓝汛, 宿,帝联,sina在用ats。
Squid官方:http://www.squid-cache.org/
2、squid服务介绍
- Squid是一个高性能的代理缓存服务器,Squid支持FTP,gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的,非模块化的,I/O驱动的进程来处理所有的客户端请求。
- Squid将数据元缓存在内存和硬盘中,同时也缓存DNS查询的结果。Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度的节约带宽。
- Squid Cache(简称Squid)是一个流行的代理服务武器和Web缓存服务器软件。Squid服务有相当多的用途:
- 用于放置在Web服务器的前面,缓存 站Web服务器的相关数据,这样用户请求缓存服务器就可以直接返回数据给用户了,从而提升了用户的访问 站体验,从另一方面也减轻了Web服务器,数据库服务器,图片文件存储服务器等业务服务器的压力。这种应用被称之为反向代理服务。
- 用于放置在企业内部关键出 位置或者某些共享 络的前端,缓存内部上 用户的数据,域名系统和其他 络搜索数据等,这样用户上 请求的数据,就可以由缓存服务器返回给内部用户,而不需要上 了,从而使得内部用户上 更快,更安全,也会大大节约公司的带宽。这种应用被称之为正向代理服务(普通代理或者透明代理)。
- 通过放在 络的关键位置过滤 络流量和访问数据,提升整个 络安全。例如:可以监控及限制内部企业员工的上 行为,可以和iptables配合作为办公 的 关。
- 用作局域 通过代理上 ,只要是一台可以上 的机器就可以,位置随便,让所有的用户的浏览器设置这个服务器代理上 即可。
Squid代理服务器主要用于类Unix系统中运行,其发展历史相当悠久,功能也相当完善。除了对HTTP支持的很好外,对于FTP与HTTPS的支持也相当好,在3.0测试版中也支持了IPv6,Squid的主页在http://www.squid-cache.org。目前业界主流CDN都是基于Squid进行二次开发作为cache缓存服务器的。
2.1传统代理服务原理
传统的代理服务器就是通过浏览器设置代理的方法:设置代理服务器的IP地址与监听端口 。
流程说明:
客户端去访问 站,先到squid代理服务器,squid代理服务器会查看有没有相关数据,有的话直接到缓存中去拿取数据返回给客户端;如果没有的话,会直接把请求交给web服务器去处理,web服务器收到请求后,把数据返回给squid代理服务器,squid把数据返回给客户端,同时备份一份数据到自身缓存中。
2.2透明代理服务原理
所谓透明代理,是相对于代理服务器而言,客户端不需要做任何和代理服务器相关的设置和操作,对用户而言,感觉不到代理服务器的存在,所以称之为透明代理。相当于把代理服务器部署在核心的上 出口,当用户上 浏览页面时,会交给代理服务器向外请求,结合iptables可以实现代理+ 关+内容过滤+流量安全控制等完整的上 解决方案。
流程说明:
当客户端1发送访问请求到防火墙,防火墙会把该用户的请求转发给squid,squid会先检查自身缓存有无相关数据,有的话返回给客户1,如果没有的话,请求web服务器,获取用户的访问内容,放回给用户端,同时自己备份一份数据到自身的缓存中;当客户端2访问和客户端1一样的请求时,由防火墙把请求z’f转发给squid,squid检查自身缓存中有同样的内容,直接将该内容返回给用户。
2.3反向代理服务原理
普通代理方式是代理内部 络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部 络上的服务器,并将从内部服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
流程说明:
squid作为反向代理服务器,通常的话工作在一个服务器群集的前端,在用户看来,squid服务器就是他要访问的服务器,而实际意义上squid只是接受了用户发来的请求,并把请求提交给内 真正的web服务器去处理,如果squid自身缓存中有用户所要的数据,会直接将数据返回给用户,起到缓存数据的作用,同时减轻后端服务器的压力。
站在什么时候就会用squid/h3>
静态抗不住了,想节省带宽,又想节省成本,又想提高访问速度。
总结:
- 正向代理和透明代理中的代理服务器和客户端同属一个局域 ,对server端是透明的,服务器并不知道自己为谁提供服务。作用都是让内 用户可以通过代理服务器上互联 ,也可以提高访问速度,并且可以通过代理服务器的访问控制限制内 用户的上 行为。
- 反向代理的过程隐藏了真实的服务器,对客户端是透明的,客户端并不知道真正提供访问的服务器。可以起到负载均衡端作用,提高用户的访问速度。
- 两者的区别在于代理的对象不一样,正向代理代理的对象是客户端,反向代理代理的对象是服务端。
- 应用场景
正向和透明代理:一般用于公司内 用户访问互联 ,根据需求进行访问控制
反向代理:一般用于公司服务器集群前做web缓存,提高用户访问效率,同时可以起到负责均衡作用,为互联 提供可持续端web服务。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!