Squid 是比较知名的代理软件, 它不仅可以跑在 Linux 上还可以跑在 Windows 以及 Unix上,它的技术已经非常成熟。目前使用 Squid 的用户也是十分广泛的。Squid 与 Linux 下其它的代理软件如 Apache、Socks、TIS FWTK 相比,下载安装简单,配置简单灵活,支持缓存和多种协议。
Squid 之所以用的很多, 是因为它的缓存功能.Squid 缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的 I/O。从经济角度考虑,它是很多网站架构中不可或缺的角色。
Squid 不仅可以做正向代理,也可以做反向代理。当作为正向代理时,Squid 后面是客户端,客户端想上网需经过 Squid。当一个用户(客户端)想要请求一个主页时,它向 Squid发出一个申请,要 Squid 替它请求,然后 Squid 连接用户要请求的网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户请求同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。使用正向代理时,客户端需要做一些设置,才能实现,也就是平时我们在 IE 选项中设置的那个代理。而反向代理是,Squid 后面为某个站点的服务器,客户端请求该站点时,会先把请求发送到 Squid 上,然后 Squid 去处理用户的请求动作。下面借用一个网络上的图,看下正向代理。
再来看看反向代理:
关于正向代理、反向代理这两个概念单凭描述,你也许理解起来很困难。容易的区分办法:正向代理,Squid 后面是客户端,客户端上网要通过 Squid 去上。反向代理,Squid 后面是服务器,服务器返回给用户数据需要走 Squid。
也许你会问,什么时候需要配置正向代理,又什么时候配置反向代理呢?我的观点是,正向代理用在企业的办公环境中,员工上网需要通过 Squid 代理来上网,这样可以节省网络带宽资源。而反向代理用来搭建网站静态项(图片、html、流媒体、js、css 等)的缓存服务器,它用于网站架构中。