Blog

Blog

PHODAL

CentOS Varnish 4.0 编译

寻找nginx cache的时候发现原来还有诸如squidvarnish这等东西,只是网上的评论似乎是说varnish的性能比squid好。。

Varnish简介

Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。 varnish项目是2006年发布的第一个版本0.9.距今已经八年多了,此文档之前也提过varnish还不稳定,那是2007年时候编写的,经过varnish开发团队和网友们的辛苦耕耘,现在的varnish已经很健壮。很多门户网站已经部署了varnish,并且反应都很好,甚至反应比squid还稳定,且效率更高,资源占用更少。相信在反向代理,web加速方面,varnish已经有足够能力代替squid。

CentOS Varnish安装

安装2.0的话可以直接用

$ yum install varnish

少去了配置的总是

CentOS Varnish安装

Varnish编译

依赖

 yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

编译

 wget -c https://repo.varnish-cache.org/source/varnish-4.0.0-beta1.tar.gz
 tar -xvf varnish-4.0.0-beta1.tar.gz
 cd varnish-4.0.0-beta1.tar.gz
 ./autogen.sh
export PKG_CONFIG=/usr/local/bin/pkg-config
./configure --prefix=/usr/local/varnish
make && make install

安装目录是在/usr/local/varnish

如果报错的话,即pcre问题

../../lib/libvarnishapi/.libs/libvarnishapi.so: undefined reference to `pcre_free_study'
collect2: ld returned 1 exit status
make[3]: *** [varnishadm] Error 1

试着将pcre-devel删除

 yum erase pcre-devel

再手动编译pcre

Varnish启动

cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish
cp redhat/varnish_reload_vcl /usr/bin/varnish_reload_vcl
chmod 755 /etc/init.d/varnish
chkconfig varnish on

一个测试的启动脚本

  /usr/local/varnish/sbin/varnishd -n /var/vcache -f /usr/local/varnish/vcl.conf -a 0.0.0.0:80 -s file,/var/vcache/varnish_cache.data,1G -g www -u www -w 30000,51200,10 -T 127.0.0.1:3500 -p client_http11=on

Varnish 语法检测

 varnishd -C -f /etc/varnish/default.vcl

找到出错的地方了

Message from VCC-compiler:
Symbol not found: 'req.request' (expected type BOOL):
('input' Line 39 Pos 9)
    if (req.request == "PURGE") {
--------###########--------------

Running VCC-compiler failed, exit 1

VCL compilation failed

REDHAT Varnish

如果不是64位的话,可以这样子

rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.0.el6.rpm
yum install varnish

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签