这部分教程包含了varnish基本原理。囊括了什么是varnish、它怎样工做,同时也包含了开始使用和运行varnish。这部分事后你可能想继续了解用户向导(varnish用户引导)。 若是你正在web上读这些呢 注意每页左边的Next topic和Previous topichtml
The fundamentals of web proxy caching with Varnish使用varnish做为web代理缓存的原理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 再次重启varnishcookie
Backend servers 后端服务器网络
Peculiarities 特点架构
Now what? Now what?
varnish是一个http反向代理的缓存。它从客户端接收请求而后尝试从缓存中获取数据来响应客户端的请求,若是varnish不能从缓存中得到数据来响应客户端,它将转发请求到后端(backend servers),获取响应同时存储,最后交付给客户端。
若是varnish已经缓存了某个响应,它比你传统的后端服务器的响应要快不少,因此你须要尽量是更多的请求直接从varnish的缓存中获取响应。
varnish决定是缓存内容或者是从后端服务器获取响应。后端服务器能经过http响应头中的Cache-Control来同事varnish缓存内容。在某些条件下varnish将不缓存内容,最多见的是使用cookie。当一个被标记有cookie的客户端web请求,varnish默认是不缓存。这些众多的varnish功能特色都是能够经过写vcl来改变的。
varnish使用现代先进的架构设计。一般依赖于网络的速度,而不是性能问题。你应该更关心你的web应用的处理能力,而不是varnish的性能。
提升varnish缓存性能的关键点,是它灵活的配置语言,VCL。VCL容许你编写如何处理请求的规则。经过使用规则你能够决定如何处理内容,从哪里获取内容,以及怎样修改请求和响应。
varnish开发来是运行当前的Linux和FreeBSD的版本上,固然最好能就运行在这些系统之上。感谢这些贡献者也让varnish能运行在 NetBSD, OpenBSD, OS X 以及各类各样的Solaris系统,像Oracle Solaris, OmniOS and SmartOS。
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
本教程假定你已经运行了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,而后服务器以默认的文件夹列表来响应。
出于测试目的咱们一直让varnish运行在一个高的端口。如今咱们让varnish监听在80端口 首先中止varnish :service varnish stop 咱们须要编辑配置文件而后启动Varnish
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/CentOS配置文件路径为/etc/sysconfig/varnish,修改方式相同
修改完成后就能够重启Varnish:
service varnish start.
如今全部人访问你的网站都会经过Varnish了。
原文连接:https://www.varnish-cache.org/docs/4.0/tutorial/backend_servers.html
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
varnish cache和其余的一些项目是有所不一样的,其中一个就是你已经看到的VCL。本机咱们将快速向你展现你须要了解到的关于varnish的其余特性
varnish用VCL来编写配置文件。当varnish使用配置文件,它将配置文件转换成C代码,载入到C的编译器,而后执行 这样的话你调整的各类各样设置,你编写的处理请求的vcl规则将被处理。
varnish缓存有个管理控制台(varnishadm) ,你能够经过使用命令varnishadm来链接管理控制台,为了认证你须要有/etc/varnish/secret的读取权限。 你能够利用varnishadm来中止、开启缓存进程、载入VCL规则、调整负载均衡器、清除缓存等等,而后退出。 varnishadm 内建命令help帮助你了解到varnishadm能作些什么。
Varnish默认不记录日志到磁盘,而是记录在一块内存里,其实是日志流。任什么时候间你均可以链接它,看看发生了什么。Varnish记录了一些信息。你也可使用varnishlog来查看日志流
varnish简要教程如今就完了,你的varnish如今应该已经跑起来了。你应该看看varnish的日志,你的VCL配置文件也是粗糙的。下一步,你可能须要看看Varnish用户引导,咱们能看到更多varnish详细的特色,