Varnish基础应用1

22 篇文章 0 订阅

是一种开源方案。

Varnish Architecture
在这里插入图片描述
进程分为两类:management 进程和 (管理进程)Child/cache(子进程)

管理进程:编译VCL并应用新配置。监控varnish。初始化varnish,CLI接口。
Child/cache:
	Acceptor:接受新的连接请求。
	worker thread:处理用户请求。
	Expire:请求缓存中的过期对象。

日志:Shared Memory Log:共享内存日志,默认大小一般为90MB,分为两部分,前一部分为计数器,后一部分为请求相关的数据。
log file:存放于内存。
vcl:varnish configuration language,缓存策略配置接口,基于“域“的简单编程语言。
内存分配与回收:malloc(), free()
在varnish中就是通过jemalloc-3.6.0-1.el7.x86_64包来实现

varnish如何存储缓存对象:
1、file:将所有缓存对象存于单个文件,元数据存储与内存中,重启后元数据都没了,所以不支持持久机制。
2、malloc:缓存对象存于内存中。
3、persistent:基于文件的持久存储。

接下来安装varnish

系统:rhel7.3
epel源中就有varnish的安装包,所以我们在本地配置好epel源,直接yum install varnish即可
vim /etc/yum.repos.d/epel.repo


name=Extra Packages for Enterprise Linux 7 – $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&;arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 7 – $basearch – Debug

#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&;arch=$basearch
failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1

[epel-source]

name=Extra Packages for Enterprise Linux 7 – $basearch – Source

#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&;arch=$basearch

failovermethod=priority

enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1
yum clean all
yum makecache

配置文件

/etc/varnish/default.vcl
/etc/varnish/varnish.params  #该文件用于传递参数

在服务启动脚本里面定义了varnish.params文件。
在这里插入图片描述

配置varnish的三种应用:

1、varnishd应用程序的命令行参数:
	监听的socket,使用的存储类型等等;
	额外的配置参数:
		-p param=value
		-r param,param:设定只读参数列表
		/etc/varnish/varnish.params
2、-p选项指明的参数:
	运行时参数:可以程序运行时通过CLI接口进行配配置。
3、vcl:配置缓存系统的缓存机制
	通过vcl配置文件进行配置
		先编译,再配置,并且依赖于C编译器gcc

定义缓存方式:
在varnish.params文件中

VARNISH_STORAGE="malloc,256M" #malloc方式
#VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,1G"  #file方式

初步搭建缓存体系
缓存服务器:

[root@server7 ~]# vim /etc/varnish/default.vcl 
backend default {
    .host = "172.25.44.8";
    .port = "80";
}
[root@server7 ~]# systemctl start varnish

在这里插入图片描述
在172.25.44.8(后端服务器)这台主机上定义web页面

[root@serevr8 ~]# cat /var/www/html/index.html 
web pag for server8
[root@serevr8 ~]# systemctl start httpd

接下来就可以访问了
在这里插入图片描述

varnish命令行工具:

varnishadm

用法:
在这里插入图片描述
在这里插入图片描述输入help查看命令列表
在这里插入图片描述
ping 用来探测服务器是否在线
在这里插入图片描述
start,stop用来开启和停止子进程,status用来查看子进程状态
在这里插入图片描述
vcl.list 列出所有vcl文件
active表示活动状态的,boot表示启动加载的
在这里插入图片描述
vcl.use表示使用哪个vcl文件,vcl.discard表示删除哪个vcl文件
vcl.load表示装载哪个文件为配置文件,它会先对default.vcl文件进行编译,编译后的文件命名为test,我们使用vcl.list看到的结果就是编译后的文件名。
active表示当前正在使用的vcl文件,available表示可用的vcl文件
在这里插入图片描述
启用test文件
在这里插入图片描述
param.show [-l] [] 显示运行时参数
在这里插入图片描述
param.set 用来设定参数所对应的值,例如thread_pools默认为2
在这里插入图片描述
我们可以将其设定为3
在这里插入图片描述
在这里插入图片描述
panic.show 显示panic(恐慌)信息
在这里插入图片描述
panic.clear 清除panic信息
storage.list 显示当前存储机制
在这里插入图片描述
vcl.show显示配置文件编译前的样子
在这里插入图片描述
backend.list 显示后端服务器列表
在这里插入图片描述
设置后端主机在线状态
backend.set_health <backend_expression>
ban用来清理缓存中的缓存对象
ban.list列出定义的清理规则。

varnishlog

用来显示varnish日志,由于显示的是共享内存中的信息,所以在命令行输入该命令回车后没有任何信息,我们刷新以下访问页面结果就出来了
在这里插入图片描述
varnishncsa 显示日志信息,也要先访问在查看
在这里插入图片描述
varnishtop进行排序,也要先敲入命令回车后,访问再查看
在这里插入图片描述
varnishstat查看varnish状态(统计数据)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值