博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
varnish解读
阅读量:5084 次
发布时间:2019-06-13

本文共 1769 字,大约阅读时间需要 5 分钟。

缓存相关的基础

 

根据数据是否可以缓存

       私有数据:一般为用户的私有数据,不能缓存

        共有数据:这类数据为共有数据,大部分都可缓存

 缓存有效性判断机制

过期时间

HTTP/1.0

Expires:过期时间

HTTP/1.1

Cache-Control:max-age=

Cache-Control: s-maxage=

条件式请求

Last-Modified/If-Modified-Since

Etag/If-None-Match

缓存层级:

私有缓存:用户代理的本地缓存机制,一般为浏览器自己的缓存

公共缓存:反向缓存:反向代理服务器的缓存功能,例如varnish,nginx,squid

请求报文用于通知缓存服务ruhr使用缓存响应请求

Cache-request-directive =

"no-cache":不要用缓存回应

“max-age”:缓存有效时长

“max-stale”:联系不到后端服务器时,使用过期缓存的最大时长

“min-fresh”:最小的缓存更新时长

响应报文用于通知缓存服务如何存储上级服务器响应的内容

Cache-response-directive =

"public":公共数据可以缓存

“private”:只缓存私有数据

“no-cache”:可缓存,但响应给客户端之前需要revalidation

“no-cache”:不允许储存响应内容与缓存中

Varnish

varnish的结构

程序架构

1)Manager进程

2)Cacher进程

包含多种类型的线程:storahe,worker,Log/Stats,…..

3)shared memory log,共享内存日志

主要包含:varnishlog,varnishncsa,varnishstat。。。。

4)配置接口:VCL(varnish configuration language)

它将vcl格式的文件编译为共享对象文件

varnish程序包

varnish在epel源中,

#yum info varnish

 

安装后的文件

/etc/varnish.varnish.params:配置varnish服务进程的工具特性,例如监听的地址和端口,缓存机制

/etc/varnish/default.vcl:配置各Child/Cache线程的缓存工作属性

主程序

/usr/sbin/varnishd

CLI interface:

/usr/bin/varnishadm

Shared memory Log交互工具

/usr/bin/varnishhist

/usr/bin/varnishlog

/usr/bin/varnishncsa

/usr/bin/varnishstat

/usr/bin/varnishtop

测试工具程序

/usr/bin/varnishtest

VCL配置文件重载程序

/usr/sbin/varish_reload_vcl

Systemd Unit File:

/usr/lib/systemd/system/varnishlog.service

/usr/lib/systemd/system/varnish.service

varnish服务

/usr/lib/systemd/system/varnishncsa.service       

日志持久的服务;

varnish的缓存存储机制( Storage Types):

-s [name=]type[,options]

· malloc[,size]

内存存储,[,size]用于定义空间大小;重启后所有缓存项失效;

· file[,path[,size[,granularity]]]

文件存储,黑盒;重启后所有缓存项失效;

· persistent,path,size

文件存储,黑盒;重启后所有缓存项有效;实验;

变量的使用作用域

对安装wordpress的nginx和varnish测试

网络拓扑

使用工具ab的测试结果

nginx没使用用缓存可每秒可处理400请求,在使用缓存后在450~550

varnish的测试结果为每秒可处理650~700个请求

转载于:https://www.cnblogs.com/luoxz/p/6891813.html

你可能感兴趣的文章
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
实验五 Java网络编程及安全
查看>>
32位与64位 兼容编程
查看>>
iframe父子页面通信
查看>>
ambari 大数据安装利器
查看>>
java 上传图片压缩图片
查看>>
magento 自定义订单前缀或订单起始编号
查看>>
ACM_拼接数字
查看>>
计算机基础作业1
查看>>
Ubuntu 深度炼丹环境配置
查看>>
C#中集合ArrayList与Hashtable的使用
查看>>
从一个标准 url 里取出文件的扩展名
查看>>
map基本用法
查看>>
poj-1163 动态规划
查看>>
Golang之interface(多态,类型断言)
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>