前一阵看了看squid的官方指南,觉得翻译的那哥们翻的有点烂,看的我都快疯了,可是现在关于squid的中文版介绍还就那么一本,为了方便我自己学习,也为了方便大家,我决定自己总结一份squid的指南,写的比较慢,先把介绍和获取方法贴上来,大家先看看。
提到squid大多数做运维的人都知道是反向代理,可以给网站加速,但是很多人没有搞明白squid的工作原理,只是听说squid性能不错可以用来给网站提速,就直接在自己的网站前面套了一个squid ,这基本没有任何用处,即使你都是静态页面,后面的apache上没有开mod_expires,一样缓存不了,squid只能起到一个连接管理的用处。
一般说来,网站用 squid 加速,目的有二种
1: squid本身具有缓存功能,可以将webserver输出的内容缓存起来,在缓存没有过期之前来的访问,都直接用缓存里面的内容,这样可以有效减少webserver机器上面的请求数量。这是 squid 的主要功用。
2: 网络慢的用户会长时间占用webserver的TCP连接,webserver对每个连接占用的资源比较大,如果长时间不能释放出来服务其他请求,性能会有比较大的影响。前面放一个squid, webserver 就可以迅速处理完逻辑以后,把数据快速发送给squid, 然后去处理别的逻辑,而 squid 每个TCP连接占用的资源很少,不用担心占用太多资源。这个用途也叫做连接管理,有一些网络设备也可以做这个事情,价格都很贵。
cache命中-- 在squid每次从它的缓存里满足HTTP请求时发生。cache命中率,是所有HTTP 请求中命中的比例。一般没有经过调整的squid,其cache 命中率在30%到60%之间,经过调整后cache命中率会上升,最高能达到90%以上。另一个相似的度量单位叫做字节命中率,描绘了cache提供服务的数据容量(字节数)。
cache丢失-- 在squid不能从它的缓存里满足HTTP 请求时发生。cache 丢失的理由有很多种。最明显的,当squid 第一次接受到对特殊资源的请求时,就是一个cache丢失。类似的情况是,squid会清除缓存以释放空间给新对象。另外的可能是资源不可到达。原始服务器会指示cache怎样处理响应。例如,它会提示数据不能被缓存,或在有限的时间内才被重复使用等等。
cache确认-- 保证squid 不对用户返回过时数据。在重复使用缓存对象时,squid经常从原始服务器确认它。假如服务器指示squid的拷贝仍然有效,数据就发送出去。如果数据已经无效的话,squid 会升级它的缓存拷贝,并且转发给用户。
squid对硬件要求不算高。内存对于squid而言很重要。内存短缺会严重影响性能。磁盘空间相对来说也比较重要。更多的磁盘空间意味着更多的缓存目标和更高的命中率。更快速的硬盘也会提升squid性能,SSD硬盘肯定会比普通硬盘更好,前提是你们公司舍得花钱,当然,快速的CPU也可以提升squid性能,但它并不是提高性能的关键因素。
在看完上面的内容后,相信大家对squid也有了一定的了解,接下来我们来说说如何获取squid。
Squid每个发布版有一个版本号,例如2.5.STABLE4。版本号的第三部门以STABLE或DEVEL开头,DEVEL版本可以称之为测试版,测试版拥有更新的,更具有实验性的功能,但是也有可能拥有更多的BUG,没有经验的用户不建议使用DEVEL版本,加入你选择使用DEVEL版本并且遇到了问题,请将问题报告给squid维护者。
在一段时间的测试期后,squid版本号会变为STABLE,这个版本更适合于普通用户,当然,即使是稳定版也可能会有一些BUG,这时就要看稳定版后面的数字了,例如2.5.STABLE4,这是squid2.5稳定版第四次发布的版本,数字4代表了是第几次发布的,发布的次数高,BUG也就应该更少。
获取squid源码包很简单,访问squid的官网首页http://www.squid-cache.org,首页有链接志向不同版本的稳定版和测试版,如果web访问不了的话,你也可以从ftp://ftp.squid-cache.org的FTP服务器上下载源码包。
关于squid的介绍和获取方法