varnish指南

http://linuxguest.blog.51cto.com/195664/355009

这篇文章包括四个小节
1、后端服务器
2、启动varnish
3、记录数据
4、使varnish工作在80端口
二、varnish指南
         Varnish是一个web加速器,被安装在web应用程序前面,缓存web应用程序,并响应用户请求,varnish让您的web应用程序运行的更快,并且varnish灵活好用。
         这个指南没有覆盖所有的varnish函数和功能,它可以让您对varnish有个全面的认识并且掌握如何运用它。
         我们假设您有一个web服务器和web应用程序正在运行,而且您想使用varnish给您的web运行程序加速。
         此外我们还假设您已经阅读了“varnish安装”并且按照默认配置安装了varnish。
         ●Backend servers(后端服务器)
                   varnish有一个概念叫做“后端服务器”或者叫“原点服务器”,一个后端服务器将提供varnish加速的内容。
                   我们的第一个任务就是告诉varnish在哪里可以找到他要的内容。使用您喜欢的文本编辑器打开varnish默认的配置文件,如果您是源码安装的配置文件可能在 /usr/local/etc/varnish/default.vcl ,如果您是二进制包安装的配置文件可能在 /etc/varnish/default.vcl.
               配置文件的最顶端如下:
# backend default {
#     .host = "127.0.0.1";
#     .port = "8080";
# }
                   我们取消前面的注释,并且把8080端口改成80端口。如下
                    backend default {
         .host = "127.0.0.1";
         .port = "80";
}
现在,这块配置定义了一个varnish默认访问的后端服务器,当varnish需要从后端服务器获取内容的时候,它就会访问自己(127.0.0.1)的80端口。
Varnish可以定义多个后端服务器而且您可以通过定义多个后端服务器达到负载均衡的目的。
现在我们完成了基本的varnish配置,我们可以在8080端口上启动varnish,并做一些基本的测试。
 
         ●Starting Varnish(启动varnish)
         假设varnishd在您的环境变量中,您可能需要运行 pkill varnishd 确定varnish没有运行。然后使用root执行下面的命令。
          varnishd  -f /usr/local/etc/varnish/default.vcl  -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:8080
         我添加了一些选项,现在来详细分析他们:
          -f /usr/local/etc/varnish/default.vcl
         这个 –f 选项指定varnishd使用哪个配置文件。
          -s malloc 1G
         这个 –s 选项用来确定varnish使用的存储类型和存储容量,我使用的是malloc类型(malloc是一个C函数,用于分配内存空间), 1G 定义多少内存被malloced,1G = 1gigabyte。
          -T 127.0.0.1 2000
         Varnish有一个基于文本的管理接口,启动它的话可以在不停止varnish的情况下来管理varnish。您可以指定管理软件监听哪个接口。当然您不能让全世界的人都能访问您的varnish管理接口,因为他们可以很轻松的通过访问varnish管理接口来获得您的root访问权限。我推荐只让它监听本机端口。如果您的系统里有您不完全信任的用户,您可以通过防火墙规则来限制他访问varnish的管理端口。
          -a 0.0.0.0 8080
         这一句的意思是制定varnish监听所有IP发给8080端口的http请求,如果在生产环境下,您应该让varnish监听80,这也是默认的。
现在您的varnish已经在运行了,现在我们来验证它是否工作正常,在留言其中输入 http://192.168.2.2:8080/  ,您应该可以看见您的 web 程序在这里运行。
使用varnish后,web应用程序是否加速,取决于一些原因。如果您的程序的每个会话都使用cookies或者您每个程序都需要三次握手认证,这样varnish就不能缓存更多的数据,我们暂时忽略这个问题,等到“提高缓存命中率”这节的时候我们再继续讨论这个问题。
想要知道varnish对您的网站做了什么,请查看logs。
●Logging in varnish(记录数据)
                   Varnish一个真正的特点就是它如何记录数据的。使用内存段代替普通的日志文件,当内存段使用完以后,又从头开始,覆盖最旧的记录。这样就可以非常快的记录数据,,并且不需要磁盘空间。
                   缺点就是您没有把数据写到磁盘上,可能会消失。(varnish也支持将数据写到硬盘的文件上,看您如何选择)
                   Varnishlog这个程序可以查看varnish记录了哪些数据。Varnishlog给您生成原始的日志,包括所有的事件。 我一会给您演示。
               在运行了 varnish 的终端窗口上,运行 varnishlog 这个命令。
               您可以看见如下显示
0 CLI          - Rd ping
0 CLI          - Wr 200 PONG 1277172542 1.0
这是检查 varnish 的主进程是否正常,如果看见这就说明一切 OK
               现在您去浏览器通过 varnish 重新访问您的 web 程序,您将看到如下信息:
11 SessionOpen  c 127.0.0.1 58912 0.0.0.0:8080
11 ReqStart     c 127.0.0.1 58912 595005213
11 RxRequest    c GET
11 RxURL        c /
11 RxProtocol   c HTTP/1.1
11 RxHeader     c Host: localhost:8080
11 RxHeader     c Connection: keep-alive
第一列是任意的数,它用来定义请求,相同的号码代表相同的HTTP传输。
第二列是信息标记,所有的日志都带有一个标记(tag),标记对应相对的操作。Rx表示varnish收到数据,Tx表示varnish发送数据。
第三列代表数据是从哪里传出或者传入的,是从c(client)还是b(backend)。
第四列是被记录的数据。
 
现在,您可以过滤掉相当多的varnishlog,这些基本的选项,您需要知道:
-b               \\只显示varnish和backend server之间的日志,当您想要优化命中率的时候可以使用这个参数。
-c               \\和-b差不多,不过它代表的是varnish和client端的通信。
-i tag         \\只显示某个tag,比如“varnishlog –i SessionOpen”将只显示新会话,注意,这个地方的tag名字是不区分大小写的。
-I                \\通过正则表达式过滤数据,比如“varnishlog -c -i RxHeader -I Cookie”将显示所有接到到来自客户端的包含Cookie单词的头信息。
-o               \\聚合日志请求ID
         如果varnish一切运行OK,我们就可以把它调整到80端口上。
●PutVarnish on port 80(使varnish工作在80端口上)
                  如果您的程序正常运行,没有问题,我们就可以把varnish调整到80端口运行。先关闭vernish
                    pkill varnishd
                   然后停止您的web服务器,修改web服务器配置,把web服务器修改成监听8080端口,然后修改varnish的default.vcl和改变默认的后端服务器端口为8080.
                   先启动您的web服务器,然后在启动varnish:
                    varnishd  -f /usr/local/etc/varnish/default.vcl  -s malloc,1G -T 127.0.0.1:2000
                   我们取消了-a 选项,这样varnish将监控默认端口,启动后,检查您的web程序是否正常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值