搭建性能比squid高很多的varnish服务器

[文章作者:jackbillow  转载请注明出处:http://www.discuz.net]

arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,

性能比以前更好。
varnish的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两

种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid

cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,

这就是 Varnish cache设计架构。

1.下载源码包编译安装:

cd /usr/local/src && wget http://nchc.dl.sourceforge.net/s ... arnish-1.1.1.tar.gz
tar zxvf /usr/local/src/varnish-1.1.1.tar.gz
cd /usr/local/src/varnish-1.1.1
./autogen.sh
./configure --enable-debugging-symbols --enable-developer-warnings --enable-dependency-tracking
注:如果你的gcc版本是4.2.0或更高的版本,可以加上--enable-extra-warnings编译参数,在出错时,得到附加的警告信息。
我这里是用源码包安装的,如果你是redhat或centos可以用rpm包来安装(rpm下载位置:http: //sourceforge.net/project/showfiles.php?

group_id=155816&package_id=173643&release_id=533569).

2. 建立cache目录:
mkdir -p /cache/varnish/V  && chown -R nobody:nobody /cache

3.编写启动文件:

cd /usr/local/varnish/sbin
vi start.sh
内容如下:
#!/bin/sh
# file: go.sh
date -u
/usr/local/varnish/sbin/varnishd \
-a 10.0.0.129:80 \
-s file,/cache/varnish/V,1024m \
-f /usr/local/varnish/sbin/vg.vcl.default \
-p thread_pool_max=1500 \
-p thread_pools=5 \
-p listen_depth=512 \
-p client_http11=on \
注:-a 是指定后端服务器的ip或hostname,就象squid做revese proxy时的originserver.
不过这个也可以在vcl里面写。
-f 是指定所用的vcl的文件。
-s 指定cache目录的存储类型,文件位置和大小。
-p 是指定varnish的启动的一些启动参数,可以根据自己的机器配置来优化varnish的性能。
其他参数已经参数的具体含义可以用varnishd --help 来查看。

4.编写vcl:
我的vcl如下:

backend default {
        set backend.host = "127.0.0.1";
        set backend.port = "http";
}

#我用的是一台机器做测试,使用的backend用的是127.0.0.1:80.如果varnish机器和后台的机器分开的。
写上对应的机器的ip或hostname就可以了。

sub vcl_recv {

if (req.request != "GET" && req.request != "HEAD") {
                pipe;
        }

if (req.http.Expect) {
                pipe;
        }

if (req.http.Authenticate || req.http.Cookie) {
                pass;
        }

if (req.request == "GET" && req.url ~ "\.(gif|jpg|swf|css|js)$") {
                lookup;
        }
                lookup;
        }

sub vcl_pipe {
        pipe;
        }

sub vcl_pass {
        pass;
        }

sub vcl_hash {
             hash;
         }

sub vcl_hit {
        if (!obj.cacheable) {
                pass;
        }
                deliver;
        }

sub vcl_timeout {
        discard;
}

sub vcl_discard {
        discard;
}

如果是多个站点在不同的originserver时,可以使用下面配置:

backend www {
       set backend.host = "www.jackbillow.com";
       set backend.port = "80";
         }

backend images {
      set backend.host = "images.jackbillow.com";
      set backend.port = "80";
         }

sub vcl_recv {
      if (req.http.host ~ "^(www.)?jackbillow.com$") {
            set req.http.host = "www.jackbillow.com";
            set req.backend = www;
      } elsif (req.http.host ~ "^images.jackbillow.com$") {
            set req.backend = images;
      } else {
            error 404 "Unknown virtual host";
}

5.启动varnish:

/usr/local/varnish/sbin/start.sh

Mon Sep  3 03:13:19 UTC 2007
file /cache/varnish/V/varnish.tEKXXx (unlinked) size 1073741824 bytes (262144 fs-blocks, 262144 pages)
Using old SHMFILE

ps waux | grep varnish 
root     16254  0.0  0.0 11200  708 ? Ss   10:43   0:00 /usr/local/varnish/sbin/varnishd -a 10.0.0.129:80 -s /varnish/V,1024m

-f /usr/local/varnish/sbin/vg.vcl.default -p thread_pool_max 1500 -p thread_pools 5 -p listen_depth 512 -p client_http11 on
nobody   16255  0.0  0.1 1152552 1808 ?      Sl   10:43   0:00 /usr/local/varnish/sbin/varnishd -a 10.0.0.129:80 -s

file,/cache/varnish/V,1024m -f /usr/local/varnish/sbin/vg.vcl.default -p thread_pool_max 1500 -p thread_pools 5 -p

listen_depth 512 -p client_http11 on

看到上面信息说明varnish正确启动,恭喜你,你已经配置成功了。:)

本文转自 jxwpx 51CTO博客,原文链接:http://blog.51cto.com/jxwpx/216878,如需转载请自行联系原作者

用来代替SQUID的软件VARNISH相关推荐

  1. 软件加速软件varnish

    --可以参考这个BLOG上的文章 http://ixdba.blog.51cto.com/2895551/682555 http://www.doooor.com/forum.php?mod=view ...

  2. Varnish 和 Squid比较到底强多少

    对于坊间流传的: 1.varnish的性能比squid高10~20倍 2.squid 3.0的性能比2.6有提高 本次测试将会揭示结果, 是否varnish的架构真的能提升那么多的性能 是否squid ...

  3. 谈谈varnish、squid、apache、nginx缓存的对比

    1.Squid,很古老的反向代理软件,拥有传统代理.身份验证.流量管理等高级功能,但是配置太复杂.它算是目前互联网应用得最多的反向缓存代理服务器,工作于各大古老的cdn上. 2.Varnish是新兴的 ...

  4. varnish与squid比较

    1.Varnish概述及工作流程 1.1 Varnish概述 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器 Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存 Sq ...

  5. Linux搭建squid varnish 代理服务器

        Linux搭建HTTP代理服务器 代理服务器(Proxy Server): 正向代理 --- 客户端程序(如浏览器)用制定代理服务器的地址:端口 反向代理 --- 负载均衡,反向代理工作机 ...

  6. 自建CDN技术选型: squid varnish nginx

    CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. 使用CDN有3个好 ...

  7. proxyServer squid / varnish / apache traffic server / ATS

    apache traffic server http://gwan.com/benchmark/index.html http://zymlinux.net/  赵永明(阿里) /  旺旺群:7543 ...

  8. varnish与squid的比较

    生产环境中尝试使用varnish替代squid的主要原因: 1. squid不支持多核cpu, 生产环境中大多使用Dell R610系列,这种类型机器配置为2个4核双线程cpu, 操作系统识别为16个 ...

  9. 《高性能Linux服务器构建实战》——2.1节初识Varnish

    2.1 初识Varnish 2.1.1 Varnish概述 Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的开发者Poul-Henning Kamp是FreeBSD核心的开发人 ...

最新文章

  1. 隆重介绍!一款新型基于姿势的人像实例分割框架
  2. 利用Oracle VPD实现行级安全保护(二)
  3. sprintf php 数字占位,PHP sprintf()实现格式化输出
  4. python开多少进程合适_用了python多进程,我跑程序花费的时间缩短了4倍
  5. 曼哈顿距离最小生成树
  6. Oracle服务器修改IP后
  7. 2021儋州市民族中学高考成绩查询,海南2021高考成绩排名查询,海南高考个人成绩排名如何查询...
  8. 72. Edit Distance
  9. 阿里面试官居然问我如何设计一个本地缓存
  10. C刷题记录-1020
  11. W3school笔记——HTML
  12. html面中select下拉框回显,select下拉框数据回显
  13. Linux-chmod
  14. WIN7系统设置保护视力的豆沙绿过程
  15. 服务器所在文件夹路径,服务器上文件夹路径
  16. Go使用绘图的库(go-charts、go-echarts)
  17. 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
  18. Url scheme 方式 打开App Store和应用商店
  19. python控制相机,在OpenCV / Python中设置相机参数
  20. 弹弹堂 网页游戏 单机自玩 搭建教程

热门文章

  1. 文件属性及资源文件的使用
  2. [系统开发] Postfix 邮件管理系统
  3. CADisplayLink 及定时器的使用
  4. 路由器简介一:路由器概念、基本结构及分类
  5. 实验 4 在分支循环结构中调用自定义函数
  6. bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
  7. linux中实现pxe的自动安装
  8. 分析 AIX 和 Linux 性能工具nmon
  9. w10连接不上网络问题_【问题解决】微软OneNote使用笔记,onenote无法连接网络无法同步解决方法...
  10. android 关闭jack_Android7.0 配置JACK支持多用户同时编译