varnish
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了varnish相关的知识,希望对你有一定的参考价值。
一,varnish原理:
varnish的特性:
1,缓存位置:可以使用内存也可以使用磁盘,如果使用磁盘的话推荐SSD做RAID1
2,日志存储:日志也可以存储在内存中
3,支持虚拟内存。
4,有精确的时间管理机制,及缓存的时间属性控制
5,状态引擎架构:在不同的引擎上完成对不同的缓存代理数据进行处理,可以通过特定的配置语言设计不同的控制语句,以决定数据在不同位置以不同方式缓存,在特定的地方对经过的报文进行特定规则的处理
6,缓存管理:以二叉堆格式管理缓存数据,做到数据的即时清理
简单架构:
分为management进程和child进程
menagenment进程:对子进程进行管理,同时对VCL配置进行编译,并应用到不同的状态引擎
child进程:生成线程池,负责对用户请求进行处理,并通过hash查找返回用户结果。
varnish主要配置文件
varnish配置主要分为:后端配置,ACL配置,probes配置,directors配置,核心子进程配置几大块,其中后端配置是必要的,在多台服务器中还会用到directors配置,核心子程序配置
后端配置:即给varnish添加反代服务器节点,最少配置一个
ACL配置:即给varnish添加访问控制列表,可以指定这些列表访问或禁止访问
probes配置:即给varnish添加负载均衡模式管理多个后端服务器
核心子进程配置:即给varnish添加后端服务器切换,请求缓存,访问控制,错误处理等规则
req:the request object,请求到达可用的变量
berep:the backend request object,向后端主机请求时可用的变量
beresp:the backend response object,从后端足迹获取内容是可用的变量
resp:the http response object,对客户端响应时可用变量
obj:存储的内存中时对象属性相关的可用变量
now:作用:放好当前时间戳
二,安装varnish
安装依赖关系的软件包
yum -y install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx
安装varnish
官方网址为http://varnish-cache.org。varnish有时会被墙。
解压目录
编译安装:
复制vcl文件(编译安装目录下),如果安装目录里没有defalut.vcl文件。赋值打扫安装目录的/usr/local/var/varnish目录下。这个文件只是一个带注释的参考配置。一般由自己vim设定一个新配置文件。
三,varnish
varnish配置基本上是编辑vcl文件,有自定义语法,启动是,会将配置文件编译为c语言,在执行。
1,后端服务器地址配置及后端服务器健康检查
varnish有“后端”或者“源”服务器的概念,backend server提供给varnish加速的内容,实际上就是给varnish添加可供访问的web服务器,如果有多台web服务器,可添加多个backend块
后端服务器定义:
语法格式:
backend name{
.attribute="value";
}
backend是定义后端关键字,name是当前后端节点的别名,多个后端节点是,name名不能重复,负责覆盖,花括号里面定义当前节点相关属性。默认节点外其他节点定义后必须有调用。负责varnish无法启动。
支持运算符
=(赋值运算)
==(相等比较)
~(匹配,可以使用正则表达式,或访问列表)
!~(不匹配,可以使用正则表达式,或访问控制列表)
!(非)
&&(逻辑与)
||(逻辑或)
属性列表:
.host="ip地址"
.port=""
.host_header=
.connect_timeout=
.first_byte_timeout=
.between_bytes_timeout=
.probe=probe_name
.max_connections=
2,监视器定义
语法格式:
probe name{
.attribute="value";
}
属性列表:
.rul="/"
.request=""
.expected_response="
.timeout
.interval=
.initial
.window=
.threshold
3,集群负载均衡directors
可以定义多个后端,也可以将几个后端放在一个后端集群里面达到负载均衡的目的。也可以将几个后端组成一组后端,这个组叫做ddirectors,可以提高性能和弹性。
directors是varnish负载均衡模块,使用前必须引人directors模块directors模块主要包含:round_robiin,random,hash,fallback负载均衡模式。
round_robin:循环依次逐个选择后端服务器
random:随机选择后端服务器,可设置每个后端权重增加随机率
hash:通过散列随机选择对应的后端服务器且保持对应关系,下次则直接找对应的后端服务器。
fallback:后备
set命令是设置变量
unset命令删除变量
web_ccluster.add_backend:添加后端服务器节点,backend为后端配置别名
real为权重值,随机率计算公式:100*(当前权重/总权重)
req.backend_hint是varnish的预定义变量,作用是指定请求后端节点
vcl对象需要使用new关键字创建,所忽悠可创建对象都是内定的,使用前必须import,所有new操作只能在vcl_init子程序中。
本文出自 “11853028” 博客,请务必保留此出处http://tanhong.blog.51cto.com/11853028/1919377
以上是关于varnish的主要内容,如果未能解决你的问题,请参考以下文章