二、varnish指南

这篇文章包括四个小节
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
         这个 �Cf 选项指定 varnishd 使用哪个配置文件。
         -s malloc 1G
         这个 �Cs 选项用来确定 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 �Ci 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 程序是否正常。

你可能感兴趣的:(职场,休闲,后端服务器,varnish指南,启动varnish)