squid   varnish nginx

  1. 1.   Squid,很古老的反向代理软件,拥有传统代理、身份验证、流量管理等高级功能,但是配置太复杂。它算是目前互联网应用得最多的反向缓存代理服务器,工作于各大古老的cdn上。 

  2. 2.   Varnish是新兴的一个软件,设计简单,更符合目前互联网的应用,很多公司都采用了varnish这个软件,比如微博的openapi http://open.t.sina.com.cn Varnish是基于内存缓存,重启后数据将消失

  3. 3.   nginx nginx的反向代理缓存是通过一个模块实proxy_cache来实现的,目前这个模块还在完善中,但是很多公司已经开始使用了。

1、   从这些功能上。varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成

2、   要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish。 

varnish 本身的技术上优势要高于squid,它采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。 varnish是不能cache到本地硬盘上的。 

还有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存 

squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境(这应该与squid早出来有关)。

3、   谈谈nginx,nginx是用第三方模块ncache做的缓冲,其性能基本达到varnish,但在架构中nginx一般作为反向(静态文件现在用 nginx的很多,并发能支持到2万+)。在静态架构中,如果前端直接面对的是cdn活着前端了4层负载的话,完全用nginx的cache就够了。

VarnishSquid的对比

说到Varnish,就不能不提Squid。Squid是一个高性能的代理缓存服务器,它和Varnish相比较有诸多的异同点,下面进行分析。

下面是Varnish与Squid之间的相同点。

都是一个反向代理服务器。

都是开源软件。

下面是它们的不同点,也是Varnish的优点。

1.Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。

2.Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而Squid是从硬盘读取缓存数据,因此Varnish在访问速度方面会更快。

3.Varnish可以支持更多的并发连接。因为Varnish的TCP连接释放要比Squid快,所以在高并发连接情况下可以支持更多的TCP连接。

4.Varnish可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid做不到。

当然,与传统的Squid相比,Varnish也有缺点。

1.Varnish在高并发状态下CPU、I/O和内存等资源开销都高于Squid。

2.Varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力。