786yr 发表于 2014-7-22 09:56:41

高性能缓存加速器varnish(安装配置篇)

一、安装前准备1、安装环境:系统:Centos 6.4   64位软件:varnish-3.0.32、安装资源:如果你是初次接触varnish不知道怎么安装和配置,可以到varnish的官方网站https://www.varnish-cache.org/进行查看样例,想要找到varnish的最新版本也到此网站下载。3、安装相关工具:因为安装varnish时本系统用到正则表达式,所以要安装一个工具pcre-devel,还有一个就是安装varnish的测试工具ncurses-devel。# mount /dev/cdrom /media/cdrom/# yum install pcre-devel//安装测试工具ncurses-devel# yum install ncurses-devel二、varnish的安装配置(源码安装)1、安装varnish安装前首先到官方网站下载你所要安装的版本,这里在安装前准备中已经提到所以就不在提了,下载后,然后用工具上传到你要安装的系统然后进行安装,这里安装如下://解压源码安装包# tar -zxvf varnish-3.0.3.tar.gz -C /usr/local/src///切换到解压目录下# cd /usr/local/src/varnish-3.0.3///进行编译# ./configure --prefix=/usr/local/varnish--enable-dependency-trackin --enable-debugging-symbols--enable-developer-warnings说明:--prefix=/usr/local/varnish指明varnish安装目录,--enable-developer-warnings是指启用提示警告,默认情况下是NO,--enable-debugging-symbols是调试一些bug信息的标志。//执行make和make install# make && make install 2、启动varnish//创建varnish运行用户# useradd -r www //创建存放缓存目录# mkdir cache//改变cache的运行身份# chown www cache///启动varnish# /usr/local/varnish/sbin/varnishd -uwww-gwww> -f /usr/local/varnish/etc/varnish/default.vcl \> -a 192.168.2.101:80 \ > -s file,/usr/local/varnish/cache/cache.data,2G \> -w 1024,5 1200,10 \> -t 3600 \> -T 127.0.0.1:3500参数说明: -u 以什么用户运行 -g 以什么组运行 -f varnish配置文件 -a 绑定IP和端口-s varnish缓存文件位置与大小 -w 最小,最大线程和超时时间 -T varnish管理端口,主要用来清除缓存 注:centos5.4 32位文件系统限制缓存数据文件大小为2G如果停止varnish则使用以下命令:#pkill varnishd3、varnish的一些主要配置//编辑varnish的配置文件# vim /usr/local/varnish/etc/varnish/default.vcl//声明的Backend可以用在判断请求针对哪个后端服务器 backend web1 {       .host = "192.168.2.101";       .port = "80";       .connect_timeout = 1s;      #连接超时时间       .first_byte_timeout = 8s;       .between_bytes_timeout = 5s;}//不会可以到官网上参考样例,下面是样例:#backend web {#       .host = "xx.xx.xx.xx";#       .port = "80";#}//声明ACLacl purge {       "localhost";       "127.0.0.1";       "192.168.2.0"/24;}sub vcl_recv {    if (req.request == "PURGE") {      if (!client.ip ~ purge)      {            error 405 "Not allowed.";      }      return(lookup);}#判断请求针对哪个后端服务器    if (req.http.host ~ "^www.server110.com") {               #web1对应的域名      set req.backend = web1;}下面为参考样例:    #elseif (req.http.host ~ "^(www)|(my).baidu.com") {      #web2对应的域名    #   set req.backend = web2;    #}    else {      error 404 "Caesar's cache-server ! Email:root@server110.com"; #如果域名不在以上范围的出错提示      #set req.backend = web1;    }    if (req.request != "GET" && req.request != "HEAD") {      return(pipe);    }    elseif (req.url ~ "\.(php|cgi)($|\?)")                #动态页面直接通过,不缓存    {      return(pass);    }    return(lookup);}sub vcl_hit {    if (req.request == "PURGE") {      set obj.ttl = 0s;      error 200 "Purged.";    }}sub vcl_miss{    return (fetch);}##让varnish服务器缓存的类型,从后端取得数据后调用sub vcl_fetch{##对访问中get有包含jpg,png等格式的文件进行缓存,缓存时间为7天,s为秒    if (req.request == "GET" && req.url ~ "\.(js|css|mp3|jpg|png|gif|swf|jpeg|ico)$")    {       set beresp.ttl = 7d;     }    ##对访问get中包含htm等静态页面,缓存300秒    if (req.request == "GET" && req.url ~ "\/\.htm$")    {       set beresp.ttl = 300s;     }    return (deliver);}####添加在页面head头信息中查看缓存命中情况########sub vcl_deliver{    set resp.http.x-hits = obj.hits ;    if (obj.hits > 0)    {       set resp.http.X-Cache = "HIT cqtel-bbs";     }    else     {       set resp.http.X-Cache = "MISS cqtel-bbs";     }}
页: [1]
查看完整版本: 高性能缓存加速器varnish(安装配置篇)