`
gaojingsong
  • 浏览: 1182719 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【代理服务器Varnish 介绍】

阅读更多

一、Varnish 介绍

Varnish 是一款高性能且开源的反向代理服务器和 HTTP 加速器,其采用全新的软件体系机构,和现在的硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点;

 

Varnish与一般服务器软件类似,就是一个web缓存代理服务器,分为master(management)进程和child(worker,主要 做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包 括一些管理线程和很多woker线程。

 

Management进程主要实现应用新的配置、编译VCL、监控varnish、初始化varnish以及提供一个命令行接口等。 Management进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Child进程的回 应,Management将会重启此Child进程。



 

Child进程包含多种类型的线程,常见的如:

 Acceptor线程:接收新的连接请求并响应;

 Worker线程:child进程会为每个会话启动一个worker线程,因此,在高并发的场景中可能会出现数百个worker线程甚至更多;

 Expiry线程:从缓存中清理过期内容;

 

二、Varnish 工作原理及工作流程

varnish官方提供的工作原理及工作流程



 

三、Varnish与Squid的对比

相同点

1)都是一个反向代理服务器;

2)都是开源软件;

 

四、Varnish的优势

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

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

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

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

5)squid属于是单进程使用单核CPU,但Varnish是通过fork形式打开多进程来做处理,所以可以合理的使用所有核来处理相应的请求;

 

五、Varnish的劣势

1)varnish进程一旦Hang、Crash或者重启,缓存数据都会从内存中完全释放,此时所有请求都会发送到后端服务器,在高并发情况下,会给后端服务器造成很大压力;

2)在varnish使用中如果单个url的请求通过HA/F5等负载均衡,则每次请求落在不同的varnish服务器中,造成请求都会被穿透到后端;而且同样的请求在多台服务器上缓存,也会造成varnish的缓存的资源浪费,造成性能下降;

 

六、Varnish劣势的解决方案

针 对劣势一:在访问量很大的情况下推荐使用varnish的内存缓存方式启动,而且后面需要跟多台squid服务器。主要为了防止前面的varnish服 务、服务器被重启的情况下,大量请求穿透varnish,这样squid可以就担当第二层CACHE,而且也弥补了varnish缓存在内存中重启都会释 放的问题;

针对劣势二:可以在负载均衡上做url哈希,让单个url请求固定请求到一台varnish服务器上;

  • 大小: 150.6 KB
  • 大小: 138.6 KB
0
1
分享到:
评论

相关推荐

    Linux服务器反向代理软件varnish.docx

    本文主要介绍 Varnish 的安装、配置、监控等方面的实践体验。 一、Varnish 安装 Varnish 安装有两种方法:下载安装文件、本地编译安装和连接到官方网站、自动安装。自动安装可以通过访问 Varnish 官方网站,选择...

    Asp.NET性能优化之反向代理缓存 varnish

    我们讨论了把缓存存放在ASP.NET的输出缓存中(内存和硬盘),以及浏览器缓存中,而大型站点的另一种常用做法是将缓存部署在反向代理服务器上,这类缓存我们通常称之为反向代理缓存,比如Squid和Varnish。这两款软件...

    6.5: Tomcat服务器 、 Tomcat应用案例 、 Varnish代理服务器 、 总结和.docx

    Varnish是一个高性能的反向代理服务器,特别适用于缓存静态内容,以减轻Web服务器的压力。在高流量网站上,Varnish可以显著提高响应速度。配置Varnish时,通常会将Tomcat作为后端服务器,Varnish接收用户请求,缓存...

    linux-varnish配置

    Varnish 是一款高性能的开源HTTP缓存和代理服务器,主要用于提升网站的响应速度和处理能力。它通过缓存静态内容和动态内容的副本,减少对后端服务器的请求,从而提高了整体的Web性能。在Linux环境下,配置Varnish是...

    varnish+lighttpd配置

    Varnish作为一个高性能的HTTP缓存代理,常用于减轻后端服务器的压力,提高网站响应速度;而Lighttpd则是一款轻量级、快速且高效的Web服务器,适合小型到中型的网站部署。下面我们将详细探讨如何配置Varnish与...

    varnish-4.0.3.tar.gz

    Varnish是一款强大的开源HTTP缓存和反向代理服务器,其设计目的是提高网站的性能和响应速度。在标题中提到的"varnish-4.0.3.tar.gz"是一个源代码压缩包,其中包含了Varnish 4.0.3版本的所有源代码和其他相关文件,...

    Varnish网站加速缓存代理1

    Varnish的工作原理基于反向代理模式,它接收来自用户的HTTP请求,然后决定是否从缓存中直接提供内容,或者将请求转发给后端服务器。Varnish的系统架构包括Management进程和Child进程,其中Management进程负责加载...

    varnish测试报告

    Varnish是一款高性能的HTTP反向代理服务器和缓存服务器,常用于Web应用的加速。它能够将静态内容缓存在内存中,并提供快速的静态内容服务,从而减轻后端服务器的压力,提高响应速度。Varnish的配置和使用对于提升...

    varnish-3.0.7.tgz 源码安装包

    Varnish是一个开源的反向代理服务器,它的主要作用是接收HTTP请求,并根据预设的策略缓存网页内容。当后续的请求相同内容时,Varnish可以直接从内存中快速返回,而无需再次向后端服务器查询,从而显著提高了网站的...

    varnish服务器[借鉴].pdf

    在构建大流量服务器集群时,Varnish通常与其他组件如Nginx(作为反向代理和负载均衡器)、PHP(处理动态内容)、MySQL(数据库存储)以及Memcached(分布式内存缓存)等共同工作,形成高效的Web服务架构。...

    Varnish权威指南(中文版).pdf

    根据“【标题】”和“【描述】”中提供的信息,我们可以知道这是一本名为《Varnish权威指南(中文版)》的电子书,这本书是关于Varnish的,Varnish是一个高性能的开源Web应用加速器(也叫做HTTP反向代理服务器),...

    proxyServer squid / varnish / apache traffic server / ATS

    proxyServer squid / varnish / apache traffic server / ATS 这篇博文讨论了代理服务器的基本概念,并重点介绍了Squid、Varnish和Apache Traffic Server(ATS)这三种流行的代理缓存服务器软件。下面将详细阐述这些...

    varnish-5.2.1.tar.gz

    Varnish是一个高性能的HTTP缓存和代理服务器,它的主要目标是加速网站的负载和响应时间,从而提高用户体验。在互联网行业中,Varnish被广泛应用于高流量网站,以减轻后端服务器的压力,通过缓存静态和动态内容来降低...

    varnish-magento

    Varnish是一个高性能的HTTP缓存和反向代理服务器,被广泛用于提高网站的加载速度和性能。在Magento电子商务平台中,Varnish扮演着关键角色,它通过缓存静态内容和频繁请求的动态页面来减少数据库负载,从而显著提升...

Global site tag (gtag.js) - Google Analytics