varnish架构图:
Manager进程:编译VCL并应用新配置;监控vanish;初始化varnish;CLI接口
Child/cache子进程:
Acceptor:接收新的连接请求
worker threads:处理用户请求
Expiry:清理缓存中的过期对象
Log:共享内存日志大小默认一般为90MB,分为两部分,前一部分为计数器,后一部分请求相关的数据
vcl: Varnish Configuration Language (1)缓存策略配置接口; (2)基于“域”的简单编程语言
基于worker threads工作,假如并发1000个请求, child进程只能生成500个线程(worker threads),那就需要manager来启动
两个child进程,每个进程生成500个worker threads
安装varnish,由于centos6上的版本过旧,我选择安装centos7上的epel源上的varnish
yum -y install epel-release yum -y install varnish
查看varnish安装了哪些包:rpm -ql varnish
varnish的主配置文件:/etc/varnish/default.vcl
varnish如何存储缓存对象
file: 单个文件;不支持持久机制
malloc: 内存
persistent:基于文件的持久存储(仍处于试验阶段)
配置varnish的三种应用
1.varnishd应用程序的命令行参数:通过读取/etc/varnish/varnish.params文件
定义varnish主程序的工作特性
2.-p选项指明的参数,运行时参数:也可在程序运行中,通过其CLI进行配置
定义varnish各子进程或线程工作特性
3、vcl:配置缓存系统的缓存机制,通过vcl配置文件进行配置,先编译,后应用,依赖于c编译器
指明线程中缓存功能的工作机制
/etc/varnish/varnish.params文件说明
VARNISH_LISTEN_PORT=6081 指定varnish服务监听的端口
VARNISH_ADMIN_LISTEN_PORT=6082 指定varnish管理监听的端口
VARNISH_SECRET_FILE=/etc/varnish/secret varnish密钥文件存放位置
VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,1G" varnish的缓存机制,以及缓存大小
VARNISH_TTL=120 与后端服务器连接的超时时间
/etc/varnish/default.vcl配置文件说明
backend default 指定后端服务器
varnish的管理工具:
varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 连入本机
获取命令帮助使用help命令
连入后可以使用ping命令探测主机是否在线:
成功!
还可以使用status命令查看子进程是否ok
成功!
start和stop是用来启动和停止子进程的
vcl.list 列出所有可用的vcl文件
0表示数字编号,boot表示varnish启动加载此文件,前面的active表示此配置文件正在被vanish加载使用
vcl.use表示使用哪个编译好的vcl文件,注意先得编译,才能使用
vcl.load编译加载哪个vcl文件
vcl.discard丢弃一个vcl文件
vcl.show 显示一个文件编译前的样子
param.show显示运行时的参数
param.set 设置运行时的参数,例如:param.set thread_pools 4
param.show 显示运行时的参数,也可显示单个参数,例如:param.show thread_pools
panic.show 显示子进程是否有panic信息
panic.clear 清除panic信息
backend.list 显示后端服务器列表
ban 清理缓存中的缓存对象
varnishncsa查看日志信息
varnishstat查看统计信息