`
奔跑的羚羊
  • 浏览: 574812 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

varnish 4.0的安装

 
阅读更多
1.安装依赖
yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
yum install install -y libedit*


2.下载varnish
wget https://repo.varnish-cache.org/source/varnish-4.0.0.tar.gz


3.安装
tar zxvf varnish-4.0.0.tar.gz
cd varnish-4.0.0
./configure --prefix=/usr/local/varnish
make
make install


4.copy配置文件
cp ./etc/example.val /opt/conf/varnish/default.vcl

配置文件内容:
backend default {
    .host = "127.0.0.1";
    .port = "8081";
}

这块配置定义了一个 varnish默认访问的后端服务器,当varnish 需要从后端
服务器获取内容的时候,它就会访问自己(127.0.0.1)的8081端口。 Varnish 可以定义多个后端服务器而且可以通过定义多个后端服务器达到负载均衡的目的。


5.启动
/usr/local/varnish/sbin/varnishd -f /opt/conf/varnish/default.vcl -T 127.0.0.1:2000 -a 0.0.0.0:80 -s file,/tmp,200M

-f 指定varnish的配置文件
-s 选项用来确定varnish使用的存储类型和存储容量
-T 指定监听本地端口
-a 0.0.0.0:80 用来制定 varnish 监听所有 IP 发给 80 端口的 http 请求,如果在生产环境下,您应该让varnish监听80,这也是默认的

6.关闭varnish
pkill varnishd



7.工具介绍
varnishtop
varnishtop -i rxurl    可以看到客户端请求的 url次数。 
varnishtop -i txurl    可以看到请求后端服务器的url次数。 
varnishtop -i Rxheader –I Accept-Encoding 可以看见接收到的头信息中有有多少次包含Accept-Encoding。

varnishhist
varnishhist工具读取varnishd的共享内存段日志,生成一个连续更新的柱状图,显示最后 N 个请求的处理情况。这个 N 的值是终端的纵坐标的高度,横坐标代表的是对数,如果缓存命中就标记“|”,如果缓存没有命中就标记上“#”符号。
varnishsizes
varnishsizes  和varnishhist相似,除了varnishsizes现实了对象的大小,取消了完成请求的时间。这样可以大概的观察您的服务对象有多大。   
varnishstat
varnish 有很多计数器,我们计数丢失率,命中率,存储信息,创建线程,删除对象等,几乎所有的操作。Varnishstat将存储这些数值,在优化varnish的时候使用这个命令。


8.配置文件详解
Varnish使用区域配置语言,这种语言叫做“VCL”(varnish configuration language)在执行vcl时,varnish 就把VCL转换成二进制代码。

vcl_recv在请求的开始被调用,在接收、解析后,决定是否响应请求,怎么响应,使用哪个后台服务器,vcl_recv中只有请求的目标,req is available。

vcl_fetch 在一个文件成功从后台获取后被调用,通常他的任务就是改变 response headers,触发ESI进程,在请求失败的时候轮询其他服务器。
在 vcl_fetch 仍然包含的请求有object,req,available,他们通常是backend response,beresp。beresp 将会包含后端服务器的HTTP 的头信息

actions 主要有以下动作 :
pass  当一个请求被pass后,这个请求将通过varnish转发到后端服务器,但是它不会被缓存。
lookup 当一个请求在vcl_recv中被lookup后,varnish将从缓存中提取数据,如果缓存中没有数据,将被设置为pass,不能在 vcl_fetch中设置lookup。
deliver 请求的目标被缓存,然后发送给客户端

在VCL 中,有3 个重要的数据结构
request 从客户端进来
responses 从后端服务器过来
object 存储在cache 中

req 请求目标,当 varnish 接收到一个请求,这时 req object 就被创建了,你在vcl_recv中的大部分工作,都是在 req object上展开的。
beresp 后端服务器返回的目标,它包含返回的头信息,你在vcl_fetch中的大部分工作都是在beresp object上开展的。
obj 被 cache 的目标,只读的目标被保存于内存中,obj.ttl 的值可修改,其他的只能读。

VCL 支持以下运算,
=     赋值运算符 
==   对比
~    匹配,在ACL中和正则表达式中都可以
!      否定
&&   逻辑与
||     逻辑或


9.启动参数
-n vcache \     #临时文件实例名.如果以"/"开头,就必须是一个可用的路径.
-a :80 \        #服务所在端口.":80"是默认所有网络都建立80端口,":"前面是服务器IP.
-T :5000 \      #管理端口.
-s file,/data1/vcache,80g \      #虚拟内存文件映射类型,路径以及容量. 包括两种类型"malloc"和"file"
-s file,/data2/vcache,80g \      #malloc是内存+swap交换模式.很简单.没得说.
-s file,/data3/vcache,80g \      #file是mmap的文件内存映射机制.(具体情况,参阅"mmap"函数说明)
-s file,/data4/vcache,80g \
-f /usr/local/varnish/etc/varnish.vcl \           #VCL文件路径.
-P /var/run/varnish.pid \        #PID文件地址.
-w 100,2000,10 \                 #工作进程数.三个参数分别是:<min>,<max>,<timeout>
-h classic,16383 \               #hash列表类型,以及长度.默认长度是16383.
-p user=www-data \               #"-p"是变量配置参数
-p group=www-data \              #服务运行用户和用户组配置.
-p thread_pools=8 \              #进程connections pools的个数,数量越多,越耗用cpu和mem,但是处理并发能力越强.
                                 #系统手册上说,一个cpu用一个.但是,我觉得,如果机器性能足够好,每个cpu分2个也不为过.
-p listen_depth=1024 \           #TCP队列长度.默认是512.

/usr/local/varnish/sbin/varnishd -u www -g www -f /opt/conf/varnish/default.vcl -a 0.0.0.0:80  -s file,/opt/workspace/varnish/varnish_cache.data,4G  -t 3600 -T 192.168.1.236:3500 -p thread_pool_max=40000 -p thread_pools=8 -p listen_depth=1024 



-w 1024,51200,10
-s malloc,4G

10.日志设置
/usr/local/varnish/bin/varnishlog

Varnish一个特别的优点就是它如何记录数据的。使用内存段代替普通的日志文件,当内存段使用完以后,又从头开始,覆盖最旧的记录。这样就可以非常快的记录数据,,并且不需要磁盘空间。 缺点就是您没有把数据写到磁盘上,可能会消失。

-b    只显示varnish和backend server 之间的日志
-c    只显示varnish和 client端的通信
-i tag  只显示某个 tag,比如“varnishlog –i SessionOpen”将只显示新会话
-I    通过正则表达式过滤数据,比如“varnishlog -c -i RxHeader -I Cookie”将
显示所有接到到来自客户端的包含 Cookie 单词的头信息。
-o    聚合日志请求 ID

日志提供方式:
1)通过自带的varnishlog得到详细的系统工作日志
varnishlog -n vcache

vcache 为启动时指定的临时文件实例名,如未指定,默认为hostname
2)通过varnishncsa得到apache的combined格式的日志
varnishncsa -n vcache

"-f"参数可以用"X-Forwarded-For"来替换"client.ip".
"-w"参数可以把日志写入指定的文件中.
varnishncsa -n vcache -f -w /opt/logs/varnich/varnish.log 

3) 用管道把日志导入"rotatelogs"中,实现日志翻滚
varnishncsa -n vcache -f |/usr/sbin/rotatelogs /opt/logs/varnich/varnish.log.%Y.%m.%d.%H.%M.%S.log 60 480
分享到:
评论

相关推荐

    varnish-4.0-configuration-templates:用于Varnish 4.0实现的配置模板

    一组用于Varnish 4.0的配置示例。 其中包括以下模板: WordPress的 Drupal(对于Drupal 7来说工作得不错,显然取决于您的模块) Joomla(在制品) 前叉CMS OpenPhoto的 以及各种配置: 服务器端URL重写 清除...

    Varnish Cache v4.0.0-beta1.zip

    用户可以通过这些资源来编译安装Varnish,自定义配置,或者深入了解其内部工作原理。在开始之前,确保系统满足Varnish的依赖和硬件需求,并按照官方文档或社区提供的指南进行操作。 总的来说,Varnish Cache v4.0.0...

    varnish-bad-bot-detection:用于阻止恶意机器人的 Varnish 4.0 子程序(来自 http

    清漆坏机器人检测 用于阻止恶意机器人的 Varnish 4.0 子程序(来自 ) 例子: include " /etc/varnish/conf.d/bad_bot_detection.vcl " ; sub vcl_recv { call bad_bot_detection; }

    基于Linux的Varnish的安装脚本.zip

    本压缩包提供的"基于Linux的Varnish的安装脚本.zip"包含了安装Varnish所需的步骤和配置,对于需要搭建高流量网站或优化现有网站性能的用户来说,这是一个非常实用的工具。 在Linux环境下安装Varnish主要包括以下几...

    基于Linux的Varnish的安装脚本_Varnish_Install.zip

    基于Linux的Varnish的安装脚本_Varnish_Install

    varnish安装维护手册

    以下是对Varnish安装维护的一些关键知识点的详细解释: 1. **安装过程**: - 在CentOS系统中,需要通过`yum install ncurses-devel`来安装必要的依赖包。 - 在Ubuntu系统中,使用`apt-get install libncurses5-...

    Varnish安装配置

    Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 本文档详细讲解了varnish的安装配置过程以及配置文件详解

    Varnish3.0.5的安装配置.txt

    ### Varnish 3.0.5 的安装与配置 #### 一、Varnish简介 Varnish是一款高性能的HTTP应用加速器,主要用于网站缓存以提高网站访问速度及服务器响应性能。它通过将频繁访问的数据缓存到内存中,从而减少后端服务器的...

    varnish.tar.bz2

    本资源包含Varnish的安装文件varnish-3.0.5-1.el6.x86_64.rpm 和varnish-libs-3.0.5-1.el6.x86_64.rpm,是搭建cdn的高性能HTTP加速器Varnish服务器必需的安装包,下载后解压即可,具体安装配置过程清移步我的博客

    varnish安装配置[参照].pdf

    在安装Varnish之前,需要确保系统中已经安装了libpcre库,因为Varnish在编译时依赖这个库。如果提示缺少libpcre,可以通过包管理器(如`apt-get`或`yum`)安装,或者手动编译安装。在上述示例中,由于已经安装了pcre...

    linux-varnish配置

    一、安装Varnish 首先,确保你的Linux系统是基于Debian或Ubuntu,因为Varnish通常在这些系统上有预编译的包。你可以使用apt-get命令来安装: ```bash sudo apt-get update sudo apt-get install varnish ``` 如果...

    varnish-3.0.7.tgz 源码安装包

    下面将详细介绍Varnish的原理、功能以及如何安装和使用3.0.7版本。 **Varnish基础概念** Varnish是一个开源的反向代理服务器,它的主要作用是接收HTTP请求,并根据预设的策略缓存网页内容。当后续的请求相同内容时...

    varnish+lighttpd配置

    在Ubuntu系统中,可以使用以下命令安装Varnish: ``` sudo apt-get update sudo apt-get install varnish ``` 2. **配置Varnish** 配置Varnish的主要工作是编写VCL文件。默认的VCL文件位于`/etc/varnish/...

    varnish-5.2.1.tar.gz

    为了在本地系统上运行Varnish,你需要先安装必要的依赖(如编译工具链和库),然后运行配置脚本,编译源代码,最后进行安装。安装完成后,可以启动Varnish服务,并通过VCL配置文件定制其行为。同时,Varnish还提供了...

    varnish安装配置[归类].pdf

    以下是关于Varnish 3.0.2的安装配置步骤以及关键配置选项的详细解释: ### 安装步骤: 1. 首先,从官方仓库下载Varnish源代码包,例如这里使用的是`varnish-3.0.2.tar.gz`。 2. 解压缩下载的源代码包:`tar zxvf ...

    Varnish权威指南(中文)

    2. 安装与配置:详细步骤指导如何在各种操作系统上安装Varnish,并进行基本的配置。 3. 高级VCL:探索复杂的缓存策略,如基于URL、Cookie或HTTP头的缓存控制,以及如何利用VCL实现自定义逻辑。 4. 性能调优:学习...

Global site tag (gtag.js) - Google Analytics