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. ZZNU 1163: 在线判题(指针专题)

    题目描述 Ignatius is building an Online Judge, now he has worked out all the problems except the Judge S ...

  2. 新手购买海外VPS主机需要注意的几个账户安全问题

    一般我们用户的项目需要,可能会较多的购买海外的VPS主机项目居多,其实我也比较喜欢国内的阿里云等产品,但是后者需要的一些政策还是比较麻烦, 所以在操作一些调试项目的时候我比较倾向于选择较为便宜的海外V ...

  3. 在Windows上安装MySQL(免安装ZIP版)

    在 Windows 上安装MySQL(免安装ZIP版) 因为一些原因,重新安装了MySQL数据库,重装时习惯性使用最新版下载 此过程中发现MySQL 5.7.12 和MySQL 5.6的安装有些区别: ...

  4. CodeForces 702D Road to Post Office

    答案的来源不外乎于3种情况: 纯粹走路,用时记为${t_1}$:纯粹乘车,用时记为${t_2}$:乘车一定距离,然后走路,用时记为${t_3}$. 但是${t_1}$显然不可能成为最优解. 前两个时间 ...

  5. 湖南多校对抗赛(2015.05.03)Problem B: War

    并查集.从后往前加边. #include<stdio.h> #include<string.h> #include<math.h> #include<algo ...

  6. 《JavaScript网页特效经典300例-高级篇》

    <Javascript网页经典特性300例> 高级篇 第18章:ajax应用 Ajax传输JSON数据实例定义一套自己的Ajax框架 第19章:面向对象的特性 定义一个类利用prototy ...

  7. CSS3秘笈复习:第八章

    一.背景的所有属性: 属性 作用 可选项 1.background-image 定义一张图片 url(...) 2.background-repeat 控制重复 no-repeat | repeat- ...

  8. JS复习:第六章

    创建对象 一.工厂模式 function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o ...

  9. Markdown - Github specific

    这篇文章的内容,必须到github的页面才能全部生效. Github specific Github allows for mistakes There are also Tables in gith ...

  10. openwrt启动过程(脚本)

    来源:  http://wiki.openwrt.org/doc/techref/preinit_mount#first.boot 基本的openwrt启动顺序为: 1.boot loader loa ...