varnish3安装及配置

转载 于 2012-04-22 20:42:05 发布 · 139 阅读
· 0
· 0 ·
CC 4.0 BY-SA版权
原文链接:http://blog.51cto.com/chenwenming/841392
文章标签:

#后端 #php #操作系统

1.varnish安装
下载varnish软件  (此处下载3.0.2版本)
 
  1. #wget   http://repo.varnish-cache.org/source/varnish-3.0.2.tar.gz
  2. #tar -xvf varnish-3.0.2.tar.gz 
  3. #cd varnish-3.0.2
  4. #./configure --prefix=/usr/local/varnish 
  5. #make &&make install 
至此安装完成。

注:如果你在编译的vasnish中的bin目录没有发现varnishstat, varnishtop, varnishhist这个三个程序的话,是因为编译前没有安装与操作系统位数对应的ncurses-devel。

安装ncurses-devel

yum install ncurses-devel.x86_64

 
然后再次编译varnish 即可。
 
2.varnish配置
#vim /usr/local/varnish/etc/varnish/vcl.conf   
以下为配置代码:(除backend 及vcl_recv外,其他地方无需更改,这里是更改其访问的主机名,及定义后端服务器地址,字数有限,其他代码这里就不解释了)
  
  1. #backend vhost  
  2. backend  192.168.40.85 {  
  3. .host = "192.168.40.85";  
  4. .port = "80";  
  5. }  
  6. #acl  
  7. acl purge {  
  8.   "localhost";  
  9.   "127.0.0.1";  
  10.   "192.168.0.0"/24;  
  11. }  
  12. sub vcl_recv {  
  13.         if (req.http.Accept-Encoding) {  
  14.             if (req.url ~ "\.(jpg|png|gif|jpeg|flv)$" ) {  
  15.                 remove req.http.Accept-Encoding;  
  16.                 remove req.http.Cookie;  
  17.             } else if (req.http.Accept-Encoding ~ "gzip") {  
  18.                 set req.http.Accept-Encoding = "gzip";  
  19.             } else if (req.http.Accept-Encoding ~ "deflate") {  
  20.                 set req.http.Accept-Encoding = "deflate";  
  21.             } else {  
  22.                 remove req.http.Accept-Encoding;  
  23.             }  
  24.         }  
  25.            if (req.http.host ~  "(.*)youdomain.com") {  
  26.                        set req.backend = 192.168.40.85;  
  27.                  }  
  28.             else {  
  29.                         error 404 "This website is maintaining or not exist!";  
  30.                 }  
  31.   if (req.request == "PURGE") {  
  32.      if (!client.ip ~purge) {  
  33.        error 405 "Not Allowed";  
  34.    }  
  35. #.dd.....  
  36.    return(lookup);  
  37.   }  
  38. #...GET...url...jpg,png,gif. ..cookie  
  39.   if (req.request == "GET"&& req.url ~ "\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm|gz|tgz|bz2|tbz|mp3|ogg|mp4|flv|f4v|pdf)$") {  
  40.         unset req.http.cookie;  
  41.   }  
  42. #..GET...url.php....cache....  
  43.   if (req.request =="GET"&&req.url ~ "\.php($|\?)"){  
  44.         return (pass);  
  45.   }  
  46. #     if (req.restarts == 0) {  
  47.         if (req.http.x-forwarded-for) {  
  48.             set req.http.X-Forwarded-For =  
  49.                 req.http.X-Forwarded-For + ", " + client.ip;  
  50.         } else {  
  51.             set req.http.X-Forwarded-For = client.ip;  
  52.         }  
  53. #   }  
  54. #........pipe..  
  55.     if (req.request != "GET" &&  
  56.       req.request != "HEAD" &&  
  57.       req.request != "PUT" &&  
  58.       req.request != "POST" &&  
  59.       req.request != "TRACE" &&  
  60.       req.request != "OPTIONS" &&  
  61.       req.request != "DELETE") {  
  62.         return (pipe);  
  63.     }  
  64. #..GET .HEAD.....  
  65.     if (req.request != "GET" && req.request != "HEAD") {  
  66.         return (pass);  
  67.     }  
  68.     if (req.http.Authorization) {  
  69.         return (pass);  
  70.     }  
  71.     return (lookup);  
  72. }  
  73. #..url+host hash......  
  74. sub vcl_hash {  
  75.     hash_data(req.url);  
  76.     if (req.http.host) {  
  77.         hash_data(req.http.host);  
  78.     } else {  
  79.         hash_data(server.ip);  
  80.     }  
  81.     return (hash);  
  82. }  
  83. # .....purge .....  
  84. sub vcl_hit {  
  85.    if (req.request == "PURGE") {  
  86.        set obj.ttl = 0s;  
  87.        error 200 "Purged";  
  88.     }  
  89.     return (deliver);  
  90. }  
  91. sub vcl_fetch {  
  92.           if (req.url ~ "\.(jpeg|jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|ico|swf|flv|dmg|js|css|html|htm)$") {  
  93.                    set beresp.ttl = 2d;  
  94.                    set beresp.http.expires = beresp.ttl;  
  95.                    set beresp.http.Cache-Control = "max-age=172800";  
  96.                    unset beresp.http.set-cookie;  
  97.           }  
  98.           if (req.url ~ "\.(dmg|js|css|html|htm)$") {  
  99.                    set beresp.do_gzip = true;  
  100.           }  
  101.           if (beresp.status == 503) {  
  102.                          set beresp.saintmode = 15s;  
  103.           }  
  104. }  
  105. sub vcl_deliver {  
  106.         set resp.http.x-hits = obj.hits ;  
  107.         if (obj.hits > 0) {  
  108.                 set resp.http.X-Cache = "HIT You!";  
  109.         } else {  
  110.                 set resp.http.X-Cache = "MISS Me!";  
  111.         }  
  112. }  

 

 

配置文件保存退出 ,并启动 varnish,如下图

/usr/local/varnish3/sbin/varnishd -f /usr/local/varnish3/etc/varnish/default.vcl -a 192.168.40.84:8080 -u www -g www -p thread_pool_max=51200 -
p thread_pools=4 -h classic,500009 -p lru_interval=20 -s file,/a8root/varnish/varnish_cache.data,512M -w 1000,51200,10 -T 192.168,40.84:3500

 

 

转载于:https://blog.51cto.com/chenwenming/841392

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
weixin_33946020
关注 关注
  • 0
    点赞
  • 踩
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
参与评论 您还未登录,请先 登录 后发表或查看评论
weixin_33946020

博客等级

码龄10年
146
原创
221
点赞
1278
收藏
8797
粉丝
关注
私信

热门文章

  • RHEL6~卡毛!~~Start from Gnome Part1 209334
  • m3u8直播测试地址 15896
  • 页面跳转后再返回,原页面保持不变 12636
  • 完美解决jspdf各种中文乱码问题 12073
  • mock获取入参数并动态设置返回值 11961
上一篇:
Linux系统中如何添加自己的库文件路径 [转]
下一篇:
LVM逻辑卷的管理

最新评论

  • [算法]检测空间三角形相交算法(Devillers & Guigue算法)

    star-keke: 由于计算机进度误差,四点行列式不可能完全等于0,一般取一个阈值,当四点行列式的值小于阈值认为是0(点在平面上)

  • [算法]检测空间三角形相交算法(Devillers & Guigue算法)

    star-keke: 这个很实用,谢谢分享表情包

  • matlab练习程序(纹理合成)

    老宫v: 灰度调整,可以考虑删掉

  • org.apache.axis2.AxisFault: unknown

    weubiwube: 有问题请教一下,已私信

  • mock获取入参数并动态设置返回值

    老板来杯冰阔乐: 这篇文章对你有帮助吗?????????????????????????

大家在看

  • 拒绝内卷!计算机走对赛道,应届生也能实现起薪破万、岗位缺口超300万!
  • Redis集群核心原理与实战解析
  • 机器学习算法篇(六)贝叶斯算法
  • Spring生命周期大揭秘:你的Bean到底经历了什么?
  • 关于使用TCP分别实现客户端与服务器之间文件的下载与上传代码详细注释:(linux) 1001

最新文章

  • Linux练习(产生临时文件)
  • angularJS1笔记-(13)-自定义指令(controller和controllerAs实现通信)
  • 开篇了
2019年381篇
2018年680篇
2017年953篇
2016年525篇
2015年439篇
2014年303篇
2013年314篇
2012年253篇
2011年212篇
2010年144篇
2009年110篇
2008年89篇
2007年69篇
2006年38篇
2005年17篇
2004年9篇

目录

展开全部

收起

目录

展开全部

收起

上一篇:
Linux系统中如何添加自己的库文件路径 [转]
下一篇:
LVM逻辑卷的管理

最新文章

  • Linux练习(产生临时文件)
  • angularJS1笔记-(13)-自定义指令(controller和controllerAs实现通信)
  • 开篇了
2019年381篇
2018年680篇
2017年953篇
2016年525篇
2015年439篇
2014年303篇
2013年314篇
2012年253篇
2011年212篇
2010年144篇
2009年110篇
2008年89篇
2007年69篇
2006年38篇
2005年17篇
2004年9篇

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值