varnish简介

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查看统计信息

原文地址:https://www.cnblogs.com/linuxboke/p/5503029.html