Varnish

Varnish

监听端口号: 6081

 

官方网站:

https://www.varnish-cache.org/

一、Varnish简述:

1: 缓存加速
一般来说,只是针对于静态文件(html, png, jpg, rar, txt, .....)

动态文件的加速, fastcgi(缓存的一些变量)
2: 缓存主要作用

缓存的主要作用是读, 减少磁盘IO
写也可以缓存的,风险成本会高一些

读的主要原因:
1: 访问过的数据,会被其他客户端,二次或者多次再次访问
2: 一个数据被访问后, 离他较近的客户端会再次访问

3: 缓存的实现方式
既然要缓存,需要被告诉读取,至少比在比在磁盘里面读取要快N倍
数据库的: Memcache, Redis, HANA
介质: SSD, PCI-E

使用一种"目录"的方式,将我要访问的地址,经过hash处理,形成一个KEY,我把它缓存到内粗中, 同时, 我将访问的地址所对应的值,缓存在我的SSD中,起到缓存加速的作用,这就是key-value的换数据

key: 一般对我们访问路径,
value: 访问的值,可以是数据库的值,可以是访问介质上的值

缓存离开不了: 内存, 可能需要高速硬盘

4: 缓存常见的术语
1: 命中,找到了
2: 命中率, 命中/(命中次数+非命中次数)
3: 热区, 经常被访问的数据
4: 对象, 数据库的值,可以是用户信息,可以cookies。。。。。
5: LRU, 清理方式,把不常用的,较老的数据清除

5: web类缓存的软件
1: CDN
2: Squid
3: Varnish
4: 自定义
5: Apache
6: nginx


6: Varnish

接受请求--> 分析这个请求 --> 对URL进行HASH--> 查找缓存

如果命中 --> 直接范围
如果未命中 --> 源 --> 请求数据 --> 返回


动作端口默认6081


7: varnish软件
varnish configure language ==> VCL

varnish:
管理进程
工作进程(child/cache)

https://packagecloud.io/varnishcache/varnish62/install#manual-rpm

8: Varnish的日志

日志保存在内存, 如要查看日志, 需要使用如varnishlog,varnishstat工具去看

9: varnish的状态
recive:接受用户请求, 判断用户请求, 知道下一步怎么走
lookup: 去本地查找缓存,若没有,继续下一步, 若有,则返

pass: 不去本地查找缓存,去fatch取请求数据 (需要检查客户端请求)
pipe: 不对客户端请求组做任何分析,直接和后端服务器建立通道

fetch: 取的状态

deliver: 提供状态

VCL处理流程图

 

 

1、安装varnish

[root@localhost~]# yum install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx graphviz -y

[root@localhost~]# yum install epel-release

[root@localhost~]# yum -y install jemalloc-devel

[root@localhost~]#wget  https://varnish-cache.org/_downloads/varnish-6.0.4.tgz

[root@localhost~]# tar xf varnish-6.0.4.tgz

[root@localhost~]# cd varnish-6.0.4/

[root@localhostvarnish-6.0.4]# ./configure --prefix=/usr/local/varnish

[root@localhost~]# make && make install

 

cd 

 

posted @ 2019-09-10 01:26  科子  阅读(485)  评论(0编辑  收藏  举报