17611538698
webmaster@21cto.com

代理服务器哪家强:HAProxy、Varnish与Nginx横向比较

资讯 0 4107 2017-03-24 12:00:47
focus.png


在前面的文章中,我们曾对HAProxy、Varnish的性能、配置做过详细介绍。今天给各位带来的是这三款开源代理服务器软件的区别,以及什么样的场景使用哪款软件。
 
哪个软件能够支撑高可用,高并发,还要好维护,运维和网络管理员如何从这些方案中选择一个适合的代理服务器解决方案。
 
下面我们就来看这三种代理服务器的基本资料,然后对比异同。

关于代理服务器


 
代理服务器的位置是后端服务的前端,用来负载流量,分配资源,以及解决安全攻击等问题,比如DDOS,并且支持Web应用的高可用。
 
Varnish
 
Varnish是一款反向HTTP代理服务器,提供加速设计给大流量的网站应用。不像其它 ,如果你要使用代理和负载均衡。
 
Varnish的典型用户有WikiPedia,纽约时报。我在好乐买(Okbuy.com)也部署了Varnish。保证了服务器的性能和高可用。
 
还有很多实例,不再枚举。Varnish是从2006年开始开发的。
 
Nginx
 
Nginx恐怕是Web服务器里排名老大,它兼具负载均衡、反向代理等一身的Web服务器。Nginxr的开发活跃度和社区也都非常活跃。
 
目前,Nginx分为开源版和企业版两种,另外还有变体版本,比如淘宝优化的Tenginx等。Nginx已经被大量高负载网站所应用,国内外知名大部分都已经使用Nginx做为Web服务器,如WordPress,Aribnb,中国的BAT等大量采用。
 
Nginx实际上已经是Web服务器的事实标准,是高可用以及负载均衡网站解决方案的典型开源软件。
 
HAProxy
 
HAProxy是一个免费且开源的软件。它提供3层(TCP)和7层(http)协议支持负载均衡以及反向代理服务器功能。
 
它的速度快,并且节省资源(CPU/内存)。同时在支持多个操作系统,如Linux,Solaris,FreeBSD等。
 
HAProxy的开发时间从2002年开始的。

Ngninx、HAProxy与Varnish之比较


 
Nginx和Varnish都可以做反向代理缓存,也可以用于两个或更多个Apache之间的负载均衡,提供动态内容。根据我们的经验,Nginx的表现在静态页面会更好。
 
Nginx默认支持SSL,SPDY和HTTP/2.0,HAProxy也同样支持,Varnish不支持使用SPDY3或HTTP/2.0的SSL。
 
以下是标准评测表,并不是一个详细的数据,如果需要更详细的评测数据,请阅读每款软件的官方文档。

jg.png

 

小结


 
从上文和图中可以看到,Nginx HAProxy和Varnish这三款软件都是非常不错的代理服务器解决方案。
 
Nginx是一个完整解决方案,不仅是一个代理服务器,还是一个全栈的Web服务器,比HAProxy和Varnish的功能都要全面。
 
因此,如果只选择一款代理服务器,那还是最好去用Nginx搭建。它可以适用很多个场景。一旦网站开始运营,调整Web服务器与代理服务器是相当枯燥和磨人的,因此从一开始就用Nginx可以减轻这些焦虑。它既可以允当Web服务器,HTTP代理服务器,邮件代理服务器和负载均衡功能。
 
接下是第二选择。从职责来讲,Nginx要干的事儿太多,很多擅长不擅长的基本都干了。
 
从软件角度,单一职责会让工作更清晰。当我们不需要一个完整的Web服务器功能时,可以选用HAProxy做为代理服务器职责,它的资源占用率是非常低的,速度也更快。
 
从目前掌握的资料来看,Varnish目前步子走的稍有点慢。
当前Varnish的最新版本不能很好的支持HTTP/2.0协议,也许浪漫的法国人正在积极蕴酿更好的功能吧,或许他们还没有兴趣来做。我是Varnish粉,也一直在用,期待它很快能够跟上。

作者:21CTO社区
参考文档:http://blog.yikuyiku.com/?p=3851
欢迎在网站投稿。
 


评论