寻找nginx cache
的时候发现原来还有诸如squid
和varnish
这等东西,只是网上的评论似乎是说varnish
的性能比squid
好。。
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。
$ yum install 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
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
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
如果不是64位的话,可以这样子
rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.0.el6.rpm
yum install varnish
围观我的Github Idea墙, 也许,你会遇到心仪的项目