利用Varnish构建Cache服务器笔记

利用Varnish构建Cache服务器笔记

                             作者:NetSeek

     公司最近需要用varnish和memcache做构架调整,现就自己做了一些前提准备,希望对大家有帮助!

Varnish是一个非常不错的HTTP accelerator,具体我也不做多方面介绍了大家可以亲自尝试一下,just do it!"停止一切空谈!"。
以下是我配置服务的过程贴出来和朋友们一起分享。在调试过程中感谢手机之家张建(ajian)[手之家目前利用他来代替Squid作为图片缓存服务器性能表现非常不错!~]帮忙调试排除问题!同时欢迎朋友们与我分享你的心得!

一.Varnish安装
  1. wget http://downloads.sourceforge.net/varnish/varnish-2.0.2.tar.gz?modtime=1226669272&big_mirror=0
  2. mkdir /data/cache
  3. chown www.www /data/cache/ -R
  4. chmod a+w /data/cache/ -R
  5. ./configure --prefix=/usr/local/varnish && make && make install
复制代码
二.配置vcl.conf
#vi /usr/local/varnish/etc/varnish/vcl.conf #贴出我的多域名虚拟主机配置,不做细节介绍.
  1. #Cache for linuxtone sites
  2. #backend vhost
  3. backend  img {
  4. .host = "219.235.244.11";
  5. .port = "8080";
  6. }

  7. backend  www {
  8. .host = "211.101.76.140";
  9. .port = "80";
  10. }

  11. backend  netseek {
  12. .host = "211.101.76.141";
  13. .port = "80";
  14. }

  15. #acl
  16. acl purge {
  17.   "localhost";
  18.   "127.0.0.1";
  19.   "192.168.169.0"/24;
  20. }

  21. sub vcl_recv {
  22. if (req.request == "PURGE") {
  23. if (!client.ip ~ purge) {
  24. error 405 "Not allowed.";
  25. }
  26. lookup;
  27. }

  28. if (req.http.host ~ "^imgsns.linuxtone.org") {
  29. set req.backend = img;}
  30. elseif (req.http.host ~ "^(www)|(bbs)|(doc).linuxtone.org") {
  31. set req.backend = www;}
  32. elseif (req.http.host ~ ".netseek.com") {
  33. set req.backend = netseek;}
  34. else {
  35. error 404 "the server is wrong!";
  36. }

  37. if (req.request != "GET" && req.request != "HEAD") {
  38. pipe;
  39. }
  40. elseif (req.url ~ "\.(php|cgi)($|\?)")
  41. {
  42. pass;
  43. }
  44. lookup;
  45. }

  46. sub vcl_hit {
  47. if (req.request == "PURGE") {
  48. set obj.ttl = 0s;
  49. error 200 "Purged.";
  50. }
  51. }

  52. sub vcl_miss {
  53. if (req.request == "PURGE") {
  54. error 404 "Not in cache.";
  55. }
  56. }

  57. sub vcl_fetch {
  58. if (req.request == "GET" && req.url ~ "\.(txt|js|css)[        DISCUZ_CODE_1        ]quot;) {
  59. set obj.ttl = 10s;
  60. }
  61. else {
  62. set obj.ttl = 1d;
  63. }
  64. }
复制代码
三.Varnish启动脚本制作
1.启动脚本:
  1. ulimit -SHn 51200
  2. /usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/vcl.conf -a 0.0.0.0:80 \
  3. -n /var/vcache \
  4. -g www -u www \
  5. -T 127.0.0.1:6082 \
  6. -p thread_pool_max=2048 \
  7. -p thread_pools=4 \
  8. -p client_http11=on \
  9. -s file,/data/cache/varnish_cache.data,1024M
复制代码
2.制作成系统服务启动脚本
详细参见:http://www.linuxtone.org/thread-1433-1-1.html

四.Varnish管理
1.通过端口进行管理
  1. /usr/local/varnish/bin/varnishadm -T 127.0.0.1:6082 help
复制代码
2.查看varnish缓存状态,
  1. /usr/local/varnish/bin/varnishstat   
复制代码
3.通过管理端口清除cache
  1. /usr/local/varnish/bin/varnishadm -T 127.0.0.1:6082 purge.url <regexp>
  2. /usr/local/varnish/bin/varnishadm -T 127.0.0.1:6082 purge.list #列出刚才清除的具体URL列表.
复制代码
4.日志记录
  1. /usr/local/varnish/bin/varnishncsa -a -w /usr/local/varnish/logs/varnish.log &
复制代码
varnish日志的rotate
touch /etc/logrotate.d/varnish
/etc/logrotate.d/varnish内容
  1. /usr/local/varnish/logs/varnish.log {
  2.     daily
  3.     rotate 60 
  4.     copytruncate
  5.     notifempty
  6.     missingok 

  7.     prerotate
  8.         killall varnishncsa
  9.     endscript


  10.     postrotate
  11.         /usr/local/varnish/bin/varnishncsa -a -w /usr/local/varnish/logs/varnish.log &
  12.     endscript
  13. }
复制代码
五.Varnish及其相关参考.
1.Varnish 基本语法:  http://www.linuxtone.org/thread-1416-1-1.html
2.Varnish 官方资源:  http://varnish.projects.linpro.no/wiki/WikiStart#Documentation
3.使用Varnish代替Squid做网站缓存加速器的详细解决方案[推荐] http://blog.s135.com/read.php/313.htm
4.minuteman关于varnish方面的应用经验[推荐] http://www.2tutu.com/search.asp?q=varnish
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值