Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种协议的数据缓存,可以基于访问控制列表(ACL)和访问权限列表(ARL)执行内容过滤与权限管理功能,还可以基于多种条件禁止用户访问存在威胁或不适宜的网站资源,因此可以保护企业内网的安全,提升用户的网络体验,帮助节省网络带宽。

    由于缓存代理服务不但会消耗服务器较多的CPU计算性能、内存以及硬盘等硬件资源,同时还需要较大的网络带宽来保障数据的传输效率,由此会造成较大的网络带宽开销。因此国内很多IDC或CDN服务提供商会将缓存代理节点服务器放置在二三线城市以降低运营成本。

    在使用Squid服务程序为用户提供缓存代理服务时,具有正向代理模式和反向代理模式之分。

    使用Squid服务程序提供正向代理服务的拓扑如图16-1所示。局域网内的主机如果想要访问外网,则必须要通过Squid服务器提供的代理才行,这样当Squid服务器接收到用户的指令后会向外部发出请求,然后将接收到的数据交还给发出指令的那个用户,从而实现了用户的代理上网需求。另外,从拓扑图中也不难看出,企业中的主机要想上网,就必须要经过公司的网关服务器,既然这是一条流量的必经之路,因此企业一般还会把Squid服务程序部署到公司服务器位置,并通过稍后讲到的ACL(访问控制列表)功能对企业内员工进行上网审计及限制。

    图16-1 Squid服务程序提供正向代理服务

    使用Squid服务程序提供反向代理服务的拓扑如图16-2所示。当外网用户尝试访问某个网站时,实际请求是被Squid服务器所处理的。反向代理服务器会将缓存好的静态资源更快地交付给外网用户,从而加快了网站页面被用户访问的速度。并且由于网站页面数据中的静态资源请求已被Squid服务器处理,因此网站服务器负责动态数据查询就可以了,也进而降低了服务器机房中网站服务器的负载压力。

    squid反向代理

    图16-2 Squid服务程序提供的反向代理模式