varnish PDF http://files.cnblogs.com/jimingsong/varnish.pdf

目前介绍CentOS6.4-64位系统 yum安装varnish:

配置varnish yum源, vim /etc/yum.repos.d/varnish.repo 添加如下内容保存

[varnish-3.0]
name=Varnish 3.0 for Enterprise Linux el6 - $basearch
baseurl=http://repo.varnish-cache.org/redhat/varnish-3.0/el6/$basearch
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-VARNISH

 更新本地yum源

yum clean all
yum repolist

 安装varnish3 - varnish3.0.5(目前稳定版)

yum  -y install varnish

文件介绍

/etc/init.d/varnish 启动脚本 - 默认不需要修改

/etc/varnish/default.vcl

###########后台代理服务器########
backend server_image {
        .host = "10.20.20.30";
        .port = "8081";
}

sub vcl_recv {

###########Image域########
if (req.http.host ~ "^image.zcyun.cn") {
        set req.backend = server_image;
        if (req.request != "GET" && req.request != "HEAD") {
                return(pipe);
                }
        else {
                return(lookup);
                }
}
###########Image域##########

else {
        error 404 "Sorry,Your request no found";
        return(lookup);
        }

}

sub vcl_fetch {

        set beresp.grace = 5m;

        if (beresp.status == 404 || beresp.status == 503 || beresp.status == 500) {
                set beresp.http.X-Cacheable = "NO: beresp.status";
                set beresp.http.X-Cacheable-status = beresp.status;
                return (hit_for_pass);
        }

        if (req.request == "GET" && req.url ~ "(?i)\.php($|\?)"){
                return (hit_for_pass);
         }

        if (req.request == "GET" && req.url ~ "(?i)\.ashx($|\?)"){
                return (hit_for_pass);
         }

         if (req.url ~ "\.(php|shtml|asp|aspx|jsp|js|ashx)$") {
                return (hit_for_pass);
         }

        if (req.url ~ "\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf).*$") {
             set req.http.x-host = req.http.host;
             set req.http.x-url = req.url;
             set req.http.host = "image.xxxxx.cn";
             set req.url = regsub(req.url, "\?.*", "");
             set beresp.ttl = 7d;
             unset beresp.http.set-cookie;
        }

        if (beresp.ttl <= 0s) {
                set beresp.http.X-Cacheable = "NO: !beresp.cacheable";
                return (hit_for_pass);
        }
        else {
                unset beresp.http.expires;
        }

        if (req.url ~ "(.js|.css)$") {
                set beresp.ttl = 10m;
        }
        return (deliver);

}

sub vcl_deliver {

if (resp.http.magicmarker) {

     unset resp.http.magicmarker;

     set resp.http.age = "0";
 }

# add cache hit data
if (obj.hits > 0) {

   set resp.http.X-Cache = "HIT";
   set resp.http.X-Cache-Hits = obj.hits;
}
else {
     set resp.http.X-Cache = "MISS";
}

# hidden some sensitive http header returning to client, when the cache server received from backend server response
remove resp.http.X-Varnish;
remove resp.http.Via;
remove resp.http.Age;
remove resp.http.X-Powered-By;
remove resp.http.X-Drupal-Cache;

return (deliver);
}

sub vcl_error {
 if (obj.status == 503 && req.restarts < 5) {
   set obj.http.X-Restarts = req.restarts;
   return (restart);
 }
}

sub vcl_hit {

if (req.http.Cache-Control ~ "no-cache") {

  if (! (req.http.Via || req.http.User-Agent ~ "bot|MSIE")) {
      set obj.ttl = 0s;
      return (restart);
   }
}
  return(deliver);
}

  

/etc/sysconfig/varnish

        NFILES=131072
        MEMLOCK=82000
        RELOAD_VCL=1
        VARNISH_VCL_CONF=/etc/varnish/default.vcl
        VARNISH_LISTEN_PORT=80
        VARNISH_ADMIN_LISTEN_ADDRESS=0.0.0.0
        VARNISH_ADMIN_LISTEN_PORT=6082
        VARNISH_MIN_THREADS=1
        VARNISH_MAX_THREADS=5000
        VARNISH_THREAD_TIMEOUT=120
        VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
        VARNISH_STORAGE_SIZE=4G
        #KINEPOLIS_VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,4G"
        KINEPOLIS_VARNISH_STORAGE="malloc,10240m"
        KINEPOLIS_CONNECT_TIMEOUT="connect_timeout=600"
        VARNISH_TTL=900
        DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
                     -f ${VARNISH_VCL_CONF} \
                     -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
                     -t ${VARNISH_TTL} \
                     -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \
                     -u varnish -g varnish \
                     -s ${KINEPOLIS_VARNISH_STORAGE} \
                     -p ${KINEPOLIS_CONNECT_TIMEOUT} \
                        -p sess_workspace=262144 \
                        -p thread_pools=2 \
                        -p thread_pool_min=200 \
                        -p thread_pool_max=5000 \
                        -p thread_pool_add_delay=2 \
                        -p http_req_size=131072 \
                        -p http_req_hdr_len=49152 "

  

varnish缓存安装使用的更多相关文章

  1. Varnish缓存服务器的搭建配置手册

    Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...

  2. Varnish缓存服务

    Varnish缓存服务详解及应用实现   1.varnish的基本介绍   Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已 ...

  3. Varnish缓存服务详解及应用实现

    1.varnish的基本介绍    Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有 ...

  4. Varnish 缓存加速, Varnish 菜鸟看过来,Varnish实战

    Varnish可以有效降低web服务器的负载,提升访问速度.按照HTTP协议的处理过程,web服务器接受请求并且返回处理结果,理想情况下服务器要在不做额外处理的情况下,立即返回结果,但实际情况并非如此 ...

  5. 关于varnish缓存

    目录 缓存的概念 一.varnish缓存 1. 简介 2. 总体结构 2.1 两个主进程 2.1.1 Management进程 2.1.2 Child/Cacher进程 2.2 Varnish的日志收 ...

  6. Redis for Windows(C#缓存)安装和使用

    Redis for Windows(C#缓存)安装和使用 前言 前段时间写过两篇简单的有关Memcached缓存的相关文章,当然了只是入门的如何使用而已.最近这两天又发现了Redis这个神奇的东西,之 ...

  7. varnish缓存系统基础知识

    缓存系统类型 1.页面缓存/pageCache     缓存静态资源(html js css image)  例如:varnish    squid 2.数据缓存/dataCache      缓存应 ...

  8. keepalived高可用haproxy负载均衡varnish缓存wordpress的动静分离(第一次配置成功)

    haproxy和nginx都可以作为七层和四层反代服务器对外提供服务,此文通过haproxy和keealived配置varnish搭建wordpress的动静分离站点 一.实验环境 五台虚拟机: ha ...

  9. JEESZ-Redis分布式缓存安装和使用

    独立缓存服务器: Linux CentOS Redis 版本: 3.0下面我们针对于Redis安装做下详细的记录:编译和安装所需的包:# yum install gcc tcl创建安装目录:# mkd ...

随机推荐

  1. debian安装后sudo命令不能用的解决方法

    注:转载他人 且试用过了,我的debian版本是debian8.2 64X debian安装完之后发现sudo命令不能用 找了半天发现是没有安装sudo 得了,进入root安包,炸开他,apt-get ...

  2. 关于STM32的IO口速率问题

    输入模式可以不用配置速度,但是输出模式必须确定最大输出频率.当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz.10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来 ...

  3. Struts2第二天

    Struts2第二天 昨天: 1.Action的编写方式:实现Action接口.继承ActionSupport.自定义pojo作为action 2.action调用方法:默认的execute.meth ...

  4. 解决Fileupload 在IE 10 中需要双击的问题

    方法来自于:https://code.google.com/p/primefaces/issues/detail?id=5355 the oncomplete event is working for ...

  5. 转:Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念

    Cocoa 是在Mac OS X系统上原生的一个编译环境.他包含两个框架,其实就是一系列的类库,Foundation和AppKit. 在你的iPhone等掌上设备上,使用的则是他的一个子类 - Coc ...

  6. about hibernate lazy load and solution

    about hibernate lazy load is that used when loaded again.it can increase efficienty and sava memory. ...

  7. JMS理解2

    使用JMS 的应用程序被称为JMS 客户端,处理消息路由与传递的消息系统被称为JMS Provider,而JMS 应用则是由多个JMS 客户端和一个JMS Provider 构成的业务系统.发送消息的 ...

  8. spoj1811:Longest Common Substrin

    题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=2796 把一个字符串做出后缀自动机,另一个字符串与之匹配. #include<cs ...

  9. OpenCV2.x自学笔记——形态学运算

    名称 标识符 作用 原理 腐蚀 MORPH_ERODE 膨胀 MORPH_DILATE 开运算 MORPH_OPEN 消除细白点 先腐蚀后膨胀 闭运算 MORPH_CLOSE 消除小黑洞 先膨胀后腐蚀 ...

  10. HDU 1361 Parencodings(栈)

    题目链接 Problem Description Let S = s1 s2 … s2n be a well-formed string of parentheses. S can be encode ...