LinuxでのVarnishキャッシュサーバのインストールと構成チュートリアル
Varnishは高性能でオープンソースの逆プロキシサーバとhttpアクセラレータです。従来のSquidに比べて、Varnishはパフォーマンスが高く、速度が速く、管理が便利であるなど多くの利点があります。著者のPoul‐Henning KampはFreeBSDのカーネル開発者の一人である。Varnishは新しいソフトウェアアーキテクチャを採用し、現在のハードウェアコミットと緊密に連携しています。1975年には、メモリとハードディスクの2種類しかありませんでした。しかし、現在、コンピュータシステムのメモリにはメインメモリのほか、cpu内のL 1、L 2が含まれており、L 3速取も含まれている。ハードディスク(HDD)にも独自の速取装置があるため、squid cacheが自分で物の置き換えを処理するアーキテクチャはこれらの状況を知って最適化することはできないが、オペレーティングシステムはこれらの状況を知ることができるので、この部分の仕事はオペレーティングシステムに任せて処理しなければならない。これがVarnish cache設計アーキテクチャである。
ノルウェー最大のオンライン新聞Verdens Gang(http://www.vg.no)従来の12台のsquidの代わりに3台のVarnishを使用すると、以前よりもパフォーマンスが向上したのがVarnishの最も成功した応用例です。
Varnishの特徴:
VarnishとSquidの対比
同じ点:
違いは、Varnishのメリットでもあります。
ソリューション:
varnishのワークフロー
Varnishインストール
コードのコピー
wget http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.33.tar.gz
tar xzf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install
cd ../
コードのコピー
wget http://repo.varnish-cache.org/source/varnish-3.0.3.tar.gz
tar xzf varnish-3.0.3.tar.gz
cd varnish-3.0.3
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --prefix=/usr/local/varnish --enable-debugging-symbols --enable-developer-warnings --enable-dependency-tracking --with-jemalloc
make && make install
/usr/bin/install -m 755 ./redhat/varnish.initrc /etc/init.d/varnish
/usr/bin/install -m 644 ./redhat/varnish.sysconfig /etc/sysconfig/varnish
/usr/bin/install -m 755 ./redhat/varnish_reload_vcl /usr/local/varnish/bin
useradd -M -s /sbin/nologin varnish
コードのコピー
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/varnish_reload_vcl /usr/bin/
ln -s /usr/local/varnish/bin/varnishadm /usr/bin/
コードのコピー
chkconfig --add varnish
chkconfig varnish on
varnish管理鍵を生成するには、次の手順に従います。
コードのコピー
uuidgen > /usr/local/varnish/etc/varnish/secret
chmod 644 /usr/local/varnish/etc/varnish/secret
varnish起動構成を変更するには、次の手順に従います。
コードのコピー
sed -i "s@^VARNISH_VCL_CONF=/etc/varnish/default.vcl@#VARNISH_VCL_CONF=/etc/varnish/default.vcl\nVARNISH_VCL_CONF=/usr/local/varnish/etc/varnish/linuxeye.vcl@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_LISTEN_PORT=6081@#VARNISH_LISTEN_PORT=6081\nVARNISH_LISTEN_PORT=80@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_SECRET_FILE=/etc/varnish/secret@#VARNISH_SECRET_FILE=/etc/varnish/secret\nVARNISH_SECRET_FILE=/usr/local/varnish/etc/varnish/secret@" /etc/sysconfig/varnish
sed -i "s@^VARNISH_STORAGE=.*@VARNISH_STORAGE=\"malloc,\${VARNISH_STORAGE_SIZE}\"@" /etc/sysconfig/varnish