Linux之varnish代理的原理及部署

本文介绍了Varnish,一个高性能的开源缓存服务器,与Squid的对比,强调了Varnish的高速度和并发优势。详细讲解了Varnish的配置工具VCL,并展示了Varnish的部署步骤,包括设置虚拟机、调整系统参数、安装软件。此外,还探讨了Varnish的缓存命中情况、负载均衡(轮询)以及如何实现CDN推送,提供了具体的服务器配置和测试过程。
摘要由CSDN通过智能技术生成

一、varnish

1. varnish的简介

Varnish是一款高性能、开源的反向代理服务器和缓存服务器。Varnish使用内存缓存文件来减少响应时间和网络带宽消耗。挪威最大的在线报纸Verdens Gang使用3台Varnish代替了原来的12台squid,性能比以前更好。由于Varnish可以通过端口进行管理,使用正则语句做到清除指定缓存的功能,这些squid都做不到。但是varnish在高并发的情况下,资源消耗较高,而且varnish服务进程一旦崩溃,重启,内存中的缓存数据将全部丢失。Varnish与一般服务器软件类似,就是一个web缓存代理服务器,分为master(management)进程和child(woker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程 进行工作,主要包括一些管理线程和很多woker线程

2. varnish与squid的区别

(1)相同点

  • 都是一个反向代理服务器
  • 都是开源软件

(2)不同点

  • varnish的稳定性很高,两者在完成相同负荷的工作时,Squid服务器发生故障的机率高于Varnish,因为使用Squid要经常重启。
  • Varnish的访问速度更快,所有缓存数据可以直接从内存读取,而squid是从硬盘读取
  • Varnish可以支持更多的并发连接,因为Varnish的TCP连接释放要比Squid快。
  • Varnish可以通过管理端口,使用正则表达式批量的清除部分缓存,而Squid是做不到的。
  • squid属于是单进程使用单核CPU,但Varnish是通过fork形式打开多进程来做处理,所以是合理的使用所有核来处理相应的请求。
  • varnish进程一旦Hang、Crash或者重启,缓存数据都会从内存中完全释放,此时所有请求都会发送到后端服务器,在高并发情况下,会给后端服务器造成很大压力。
  • 在varnish使用中如果单个url的请求通过HA/F5(负载均衡)每次请求不同的varnish服务器中,被请求varnish服务器都会被穿透到后端,而且同样的请求会在多台服务器上缓存,也会造成varnish的缓存的资源浪费,也会造成性能下降。

3. varnish中的配置缓存策略工具vcl

Varnish Configuration Language(VCL)是varnish配置缓存策略的工具,它是一种基于“域”的简单变成语言,它支持有限的算术运算和逻辑运算操作、允许使用正则表达是进行字符串匹配、允许用户使用set自定义变量、支持if判断语句,也有内置的函数和变量等。使用VCL编写的缓存策略通常保存至.vcl文件中,其需要编译成二进制的格式后才能由varnish调用

vcl处理过程:

(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。

准备工作:

(1)虚拟机准备

  • 后端服务器server2(安装httpd)----> 172.25.65.2
  • 后端服务器server3(安装httpd)----> 172.25.65.3
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值