文档章节

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

wild-life
 wild-life
发布于 2015/05/08 14:10
字数 2216
阅读 688
收藏 6

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


© 著作权归作者所有

共有 人打赏支持
wild-life
粉丝 16
博文 94
码字总数 56147
作品 0
成都
技术主管
私信 提问
varnish 4.0 官方文档翻译1-管理员文档

varnish 管理员文档 varnish缓存是web应用加速器,同时也作为http反向缓存代理被人熟知。你可以安装varnish在任何http的前端,同时配置它缓存内容。varnish真的很快,单个代理的分发速度可以...

wild-life
2015/05/09
0
0
varnish权威指南-中文版[PDF]适合新手

Varnish是一种状态艺术,高性能的web加速器,它运行在linux2.6 kernel,freebsd6/7 和solaris 10系统上。 不能上传文件,就只有点击下载了 包含的一些特点: 1、 现代先进的架构设计 2、 VCL,...

蟋蟀哥哥
2012/02/02
3.8K
6
varnish 4.0 官方文档翻译4-varnish用户手册概况

The Varnish Users Guide varnish用户手册 varnish 文档包含三个主要的文档: The Varnish Tutorial 解释一些基本的东西让你开始使用varnish The Varnish Users Guide 说明varnish怎样工作以...

wild-life
2015/05/09
0
0
varnish 4.0 官方文档翻译21-Reporting and statistics

Reporting and statistics 本部分包括如何查看Varnish正在做什么,从每个http请求流的详细记录到汇总统计计数器。 Logging in Varnish Statistics varnishtop varnishhist varnishstat Loggi...

wild-life
2015/07/06
0
0
varnish 4.0 官方文档翻译17-Misbehaving servers

Misbehaving servers varnish有个关键特性,为misbehaving(行为不端,诡异的)web服务器或者应用服务器提供保护的能力。 Grace mode 当几个客户端请求同一个页面的时候,varnish只发送一个请...

wild-life
2015/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RocketMQ高性能之底层存储设计

说在前面 RocketMQ在底层存储上借鉴了Kafka,但是也有它独到的设计,本文主要关注深刻影响着RocketMQ性能的底层文件存储结构,中间会穿插一点点Kafka的东西以作为对比。 例子 Commit Log,一...

薛定谔的旺
19分钟前
2
0
实战:基于Spring Boot快速开发RESTful风格API接口

写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写。已经很久没有更新文章了,小伙伴们,有没有想我啊。言归正传,下面开始,今天的话题...

JAVA_冯文议
27分钟前
1
0
Anaconda3 5.0.0中配置Python 3.6 + TensorFlow环境

参考:https://blog.csdn.net/hu_zhenghui/article/details/78156193

Pasenger
32分钟前
0
0
Nginx反向代理Tomcat配置

Nginx代理Tomcat 为什么要为Tomcat配置反向代理? 1)如果同一台机器既有nginx又有Tomcat,则会产生端口冲突2)我们需要把8080端口变成80端口3)nginx对于静态的请求速度上要优于Tomcat,T...

wzb88
45分钟前
10
0
JavaScript email邮箱/邮件地址的正则表达式及分析

在做用户注册时,常会用到邮箱/邮件地址的正则表达式。本文列举了几种方案,大家可以根据自己的项目情况,选择最适合的方案。 方案1 (常用) 规则定义如下: 以大写字母[A-Z]、小写字母[a-z]...

前端小攻略
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部