winston 发表于 2012-3-30 18:27:11

高性能HTTP加速器Varnish(入门篇)

高性能HTTP加速器Varnish(入门篇)

2012-03-25 13:03:02
标签:squid 安装配置 Varnish

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ixdba.blog.51cto.com/2895551/816480
一、Varnish概述
        Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一。Varnish采用全新的软件体系机构,和现在的硬件体系配合紧密。在1975年时,储存媒介只有两种:内存与硬盘。而现在计算机系统的内存除了主存外,还包括CPU内的L1、L2,有的还包括L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理数据替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份工作应该交给操作系统处理,这就是 Varnish Cache设计架构。
   挪威最大的在线报纸 Verdens Gang(vg.no)使用3台Varnish代替了原来的12台Squid,性能比以前更好,这是Varnish最成功的应用案例。目前,Varnish可以在FreeBSD6.0/7.0、solaris和 Linux 2.6内核上运行。本章主要介绍Varnish在Linux上的应用。

二、Varnish的结构与特点
        Varnish是一个轻量级的Cache和反向代理软件。先进的设计理念和成熟的设计框架是Varnish的主要特点。现在的Varnish总共代码量不大,虽然功能在不断改进,但是还需要继续丰富和加强。下面总结了Varnish的一些特点。
1)基于内存进行缓存,重启后数据将消失。
2)利用虚拟内存方式,I/O性能好。
3)支持设置0~60秒内的精确缓存时间。
4)VCL配置管理比较灵活。
5)32位机器上缓存文件大小为最大2GB。
6)具有强大的管理功能,例如top,stat,admin,list等。
7)状态机设计巧妙,结构清晰。
8)利用二叉堆管理缓存文件,达到积极删除目的。

三、        Varnish与Squid的对比
        说到Varnish,不能不提Squid,Squid是一个高性能的代理缓存服务器,它和Varnish之间有诸多的异同点,下面进行分析。
下面是Varnish与Squid之间的相同点。
1)都是一个反向代理服务器。
2)都是开源软件。
下面是它们的不同点,也是Varnish的优点。
1)Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。
2)Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而Squid是从硬盘读取缓存数据i,因此Varnish在访问速度方面会更快。
3)Varnish可以支持更多的并发连接。因为Varnish的TCP连接释放要比Squid快,所以在高并发连接情况下可以支持更多TCP连接。
4)Varnish可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid做不到。
当然,与传统的Squid相比,Varnish也有缺点。
1)Varnish在高并发状态下CPU、I/O和内存等资源开销都高于Squid。
2)Varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力。

四、开始安装Varnish
        Varnish的安装非常简单,下面逐步介绍。
1、        安装前的准备
        Varnish安装环境如表1所示。
表1 Varnish安装环境
      主机名              操作系统              IP地址


[*]Varnish-serverCentOS release 5.4192.168.12.246
[*]Web-server      CentOS release 5.4192.168.12.26

接着,建立Varnish用户以及用户组,并且创建Varnish缓存目录和日志目录。


[*]#useradd-s /sbin/nologin varnish
[*]#mkdir /data/varnish/cache
[*]#mkdir /data/varnish/log
[*]#chown -R varnish:varnish/data/varnish/cache
[*]#chown -R varnish:varnish/data/varnish/log
2、        获取varnish软件
        Varnish的官方网址为http://varnish-cache.org,这里面有Varnish的最新说明文档及版本升级记录,在此网站中可以找到Varnish在SourceForge中的下载链接。目前,Varnish的最新版本是Varnish 2.1.2,下载完成后的包名为varnish-2.1.2.tar.gz,这里以此版本为例,进行安装配置。

3、        安装pcre
如果没有安装Pcre,在编译varnish 2.0以上版本时,会提示找不到pcre库,而pcre库是为了兼容正则表达式,所以必须先安装pcre库。下面是pcre的安装过程。


[*]#tar zxvf pcre-7.9.tar.gz
[*]#cd pcre-7.9/
[*]#./configure --prefix=/usr/local/pcre/
[*]#make && make install
4、        安装varnish
这里将Varnish安装到/usr/local/目录下,操作如下:


[*]#tar -zxvf varnish-2.1.2.tar.gz
[*]#cd varnish-2.1.2
[*]#export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig
[*]#./configure --prefix=/usr/local/varnish \
[*] >--enable-dependency-trackin
[*]>--enable-debugging-symbols
[*]>--enable-developer-warnings
[*]#make
[*]#make install
[*]#cp redhat/varnish.initrc/etc/init.d/varnish
[*]#cp redhat/varnish.sysconfig/etc/sysconfig/varnish
        其中,“PKG_CONFIG_PATH”是指定Varnish查找pcre库的路径。如果pcre安装在了其他路径下,在这里指定相应的路径即可,Varnish默认查找的pcre库路径为/usr/local/lib/ pkgconfig。最后两步操作是复制一些Varnish守护进程的初始化脚本文件,这些脚本用于Varnish的启动、关闭等方面,在后面文章中会进行详细讲解。
        至此,varnish安装完毕。

本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/816480


页: [1]
查看完整版本: 高性能HTTP加速器Varnish(入门篇)