varnish 4.0 官方文档翻译-简要教程

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详细的特点,

时间: 2024-10-14 19:03:41

varnish 4.0 官方文档翻译-简要教程的相关文章

varnish 4.0 官方文档翻译21-Reporting and statistics

Reporting and statistics 本部分包括如何查看Varnish正在做什么,从每个http请求流的详细记录到汇总统计计数器. Logging in Varnish Statistics varnishtop varnishhist varnishstat Logging in Varnish Varnish中一个很棒的特点是工作日志的记录方式.varnish不记录日志到日志文件,而是调用VSL记录到共享内存片段,VSL-varnish共享日志.当这个片段被写完后,varnish

varnish 4.0 官方文档翻译20-Device detection

Device detection 设备检测基于请求中的User-agent找出哪种内容返回给客户端. 使用Device detection情况的一个例子,发送给小屏幕的手机客户端或者复杂的网络环境,减少发送文件的数量,或者提供给不能解码的客户端一个video解码器. 有些使用这种方案的典型场景: 重写url 使用不同的后端给客户端 改变后端请求为了让后端发送裁剪的内容 可能为了便于理解,下文中假定req.http.X-UA-Device头表示当前前客户端,同时每种客户端是唯一的. 简单的像这样设

varnish 4.0 官方文档翻译7-用户手册-安全第一

Security first 安全第一 如果你仅仅抓专注于运行varnish,或者所有人都是这个观点,那么就可以跳过该节了.我们保护你的方方面面当http请求来的时候. 如果你的web基础设施是外包的,管理是分开的,那么你就需要考虑安全了. Varnish在4个权威的等级提供安全,大致关系到怎样让命令生效和在哪儿生效. the command line arguments, the CLI interface, VCL programs, and HTTP requests. Command l

varnish 4.0 官方文档翻译19-VCL Examples

VCL Examples Manipulating request headers in VCL 在VCL中操作请求的header. 当我们想移除发送到web服务器/images目录的所有对象的cookie可以这样: sub vcl_recv {     if (req.url ~ "^/images") {     unset req.http.cookie;     } } 这样当请求被后端处理时在http的header中将不再有cookie信息.有用的是使用if语句.在匹配的UR

varnish 4.0 官方文档翻译22-Varnish Website Performan

Varnish and Website Performance 本节集中解决如何调优varnish server,同时如何使用varnish优化你的web站点. 一共有三小节.第一小节你应该想到varnish的各种工具和功能,下一小节如何从cache中清除已经缓存的内容.清除内容是一项基本功能,因为它允许给缓存的对象增加 TTL.TTL越大varnish保持在缓存中的时间越久,这意味着varnish处理更多的请求,只将少部分的请求传递到相对较慢的后端. 最后一小节,处理web内容的压缩.当从后端

varnish 4.0 官方文档翻译7-用户手册-重要命令行参数

重要的命令行参数 当启动varnish时有两个重要的参数你必须设置: 一个是处理http请求的tcp监听端口,另一个是处理真实请求的后端server 如果你使用操作系统自带的包管理工具安装的varnish,你将在下面的文件找到启动参数: Debian, Ubuntu: /etc/default/varnish Red Hat, Centos: /etc/sysconfig/varnish FreeBSD: /etc/rc.conf (See also: /usr/local/etc/rc.d/v

varnish 4.0 官方文档翻译9-用户手册- 向Vanish下发指令

CLI-bossing Varnish around CLI 向Vanish下发指令 一旦vanish启动,你可以使用命令行接口来控制它. 最轻松的使用CLI的方法是在运行varnishd的机器上运行,varnishadm varnishadm help 如果你想远程使用varnishadm,有两种方法. 你可以使用ssh登录到运行varnishd的机器上然后varnishadm ssh $http_front_end varnishadm help 同时你也可以配置vanishd接受远程的CL

varnish 4.0 官方文档翻译16-Backend servers/M/B/D/H

Backend servers varnish有"后端"或者"源"服务器的概念.backend server提供给varnish加速的内容. 第一步设置是告诉varnish从哪儿找到backend server.使用你喜欢的编辑器打开varnishd引入的VCL文件. VCL文件的开头有一小段有点像这样: # backend default { #     .host = "127.0.0.1"; #     .port = "8080

varnish 4.0 官方文档翻译14-Built in subroutines

Built in subroutines vcl_recv 在接收到完整的客户端请求后调用这个子程序.它决定是否处理请求,怎样处理请求,使用哪一个后端. 它也可运用于修改请求,一些经常自己做的事情. vcl_recv子程序可以通过调用return()来结束,通过以下关键字: synth(status code, reason)     Return a synthetic object with the specified status code to the client and abando