varnish 4.0简要教程
这部分教程包含了varnish基本原理。囊括了什么是varnish、它怎样工作,同时也包含了开始使用和运行varnish。这部分过后你可能想继续了解用户向导(varnish用户引导)。 如果你正在web上读这些呢 注意每页左边的Next topic和Previous topic
- The fundamentals of web proxy caching with Varnish使用varnish作为web代理缓存的原理
- Supported platforms 支持平台
- About the Varnish development process varnish开发程序相关信息
- Getting in touch 联系
- Starting Varnish 开始使用varnish
- Put Varnish on port 80 让varnish监听在80端口
- Restarting Varnish again 再次重启varnish
- Backend servers 后端服务器
- Peculiarities 特色
- Now what? Now what?
The fundamentals of web proxy caching with Varnish使用varnish作为web代理缓存的原理
varnish是一个http反向代理的缓存。它从客户端接收请求然后尝试从缓存中获取数据来响应客户端的请求,如果varnish不能从缓存中获得数据来响应客户端,它将转发请求到后端(backend servers),获取响应同时存储,最后交付给客户端。
如果varnish已经缓存了某个响应,它比你传统的后端服务器的响应要快很多,所以你需要尽可能是更多的请求直接从varnish的缓存中获取响应。
varnish决定是缓存内容或者是从后端服务器获取响应。后端服务器能通过http响应头中的Cache-Control来同事varnish缓存内容。在某些条件下varnish将不缓存内容,最常见的是使用cookie。当一个被标记有cookie的客户端web请求,varnish默认是不缓存。这些众多的varnish功能特点都是可以通过写vcl来改变的。
performance 性能
varnish使用现代先进的架构设计。通常依赖于网络的速度,而不是性能问题。你应该更关心你的web应用的处理能力,而不是varnish的性能。
Flexibility 灵活的
提高varnish缓存性能的关键点,是它灵活的配置语言,VCL。VCL允许你编写如何处理请求的规则。通过使用规则你可以决定如何处理内容,从哪里获取内容,以及怎样修改请求和响应。
Supported platforms 支持的平台
varnish开发来是运行当前的Linux和FreeBSD的版本上,当然最好能就运行在这些系统之上。感谢这些贡献者也让varnish能运行在 NetBSD, OpenBSD, OS X 以及各种各样的Solaris系统,像Oracle Solaris, OmniOS and SmartOS。
About the Varnish development processvarnish开发流程
varnish是一个社区驱动项目。Varnish Governing Board监督varnish的开发,成员包括Poul-Henning Kamp (Architect), Rogier Mulhuijzen (Fastly) and Lasse Karstensen (Varnish Software). 如果你想为varnish做出贡献,请查看这个链接:https://www.varnish-cache.org/trac/wiki/Contributing
Getting in touch 获取联系
Starting Varnish
本教程假定你已经运行了Varnish在Ubuntu,Debian,Enterprise Linux 或者是 CentOS上。 如果你要运行varnish在另一些系统上,你需要费点脑力来转换了。以后你就可以尽情的使用它了,即便是在你的weird(怪癖的)的系统上确定你已经成功的安装好了varnish(下面的操作在Installing Varnish之上) 当你正确的安装好varnish后就可以使用
service varnish start
来启动varnish,如果varnish没有启动,刚刚的指令将启动varnish,现在你的vanish运行起来了。 通过浏览器来访问http://127.0.0.1:6081/(使用你自己机器的ip来替换127.0.0.1)。默认配置转发请求给web应用。Varnish认为web应用是监听在8080端口。 如果没有web应用监听在本机的8080端口,varnish将报错。当出现问题的时候,varnish cache友好的提供给你一个页面像"Error 503 Service Unavailable" 你可以运行web应用在其他端口或者其他主机。现在我们编辑配置文件,让他指向某个工作的主机。 选一个你喜欢的编辑器,编辑/etc/varnish/default.vcl 这个文件大部分是注释掉的,有些没有,像下面的:
vcl 4.0; backend default { .host = "127.0.0.1"; .port = "8080"; }
现在我们改变这个vcl配置文件,指向某个活动主机,幸运的是http://www.varnish-cache.org/是活动的,我们就用这个http://www.varnish-cache.org/ 在vcl中替换成下面这样。 vcl 4.0;
backend default { .host = "www.varnish-cache.org"; .port = "80"; }
执行
service varnish reload
使Varnish重载它的配置文件。如果成功,你在浏览器访问http://127.0.0.1:6081 将看到一些目录列表。你没有看到varnish的官方站点是因为你客户端请求的头里没有设置合适的Host,然后服务器以默认的文件夹列表来响应。
Put Varnishon port 80 让varnish监听在80端口
出于测试目的我们一直让varnish运行在一个高的端口。现在我们让varnish监听在80端口 首先停止varnish :service varnish stop 我们需要编辑配置文件然后启动Varnish
Debian/Ubuntu
Debian/Ubuntu是这个配置文件/etc/default/varnish。这个文件看起来像这样: DAEMONOPTS="-a :6081 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 修改成这样 DAEMONOPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Red Hat Enterprise Linux / CentOS
Red Hat/CentOS配置文件路径为/etc/sysconfig/varnish,修改方式相同
Restarting Varnish again
修改完成后就可以重启Varnish:
service varnish start.
现在所有人访问你的网站都会通过Varnish了。
原文链接:https://www.varnish-cache.org/docs/4.0/tutorial/backend_servers.html
Backend servers 后端服务
Varnish有个后端或者源服务器的概念。一个后端服务器是提供内容的服务器,Varnish将通过使用缓存内容来加速。 第一个任务是告知Varnish哪里可以获取到这些内容。开启你喜欢的编辑器,打开默认的配置文件。如果你通过源码安装默认的配置文件是这个/usr/local/etc/varnish/default.vcl 如果你通过包安装(想apt-get或者yum),它可能是这个/etc/varnish/default.vcl。 如果你跟进这个教程,本节你的配置文件看起来是这样的: vcl 4.0;
backend default { .host = "www.varnish-cache.org"; .port = "80"; }
配置文件的意思是我们在varnish里配置了一个后端,从www.varnish-cache.org的80端口获取内容。 如果你不想做一个varnish-cache.org的镜像,我们需要调整Varnish从你自己的源服务器获取内容。我们已经绑定Varnish在80端口,现在我们需要把它和源服务器联系起来。 像下面这个例子,我们假冒了个监听在localhost 8080端口的源服务器。 vcl 4.0;
backend default { .host = "127.0.0.1"; .port = "8080"; }
varnish可以定义很多个后端,甚至是将这个后端添加到一个集群里面使它们达到服务在均衡的目的,Varnish根据当前的调度算法挑选出一个后端 下一步,让我们看看varnish有什么独特的地方,同时我们能用它做点什么。
原文链接:https://www.varnish-cache.org/docs/4.0/tutorial/peculiarities.html
Peculiarities 特性
varnish cache和其他的一些项目是有所不同的,其中一个就是你已经看到的VCL。本机我们将快速向你展示你需要了解到的关于varnish的其他特性
Configuration 配置
varnish用VCL来编写配置文件。当varnish使用配置文件,它将配置文件转换成C代码,载入到C的编译器,然后执行 这样的话你调整的各种各样设置,你编写的处理请求的vcl规则将被处理。
varnishadm
varnish缓存有个管理控制台(varnishadm) ,你可以通过使用命令varnishadm来连接管理控制台,为了认证你需要有/etc/varnish/secret的读取权限。 你可以利用varnishadm来停止、开启缓存进程、载入VCL规则、调整负载均衡器、清除缓存等等,然后退出。 varnishadm 内建命令help帮助你了解到varnishadm能做些什么。
varnishlog
Varnish默认不记录日志到磁盘,而是记录在一块内存里,实际上是日志流。任何时间你都可以连接它,看看发生了什么。Varnish记录了一些信息。你也可以使用varnishlog来查看日志流
Now what?
varnish简要教程现在就完了,你的varnish现在应该已经跑起来了。你应该看看varnish的日志,你的VCL配置文件也是粗糙的。下一步,你可能需要看看Varnish用户引导,我们能看到更多varnish详细的特点,