varnish インストール on centos 6.2

yum -y install rpm-build
yum -y install ncurses-devel libxslt pcre-devel
wget http://repo.varnish-cache.org/source/varnish-3.0.2.tar.gz
cp varnish-3.0.2.tar.gz /root/rpmbuild/SOURCES/
tar zxvf varnish-3.0.2.tar.gz
cd varnish-3.0.2/redhat
rpmbuild -ba varnish.spec
cd /root/rpmbuild/RPMS/x84_64
rpm -ivh varnish-libs-3.0.2-1.el6.x86_64.rpm
rpm -ivh varnish-3.0.2-1.el6.x86_64.rpm

varnish 設定

sub vcl_recv {
# no Get or HEAD method
if (req.request != "GET" && req.request != "HEAD") {
return(pipe);
}
# no-cache
if (req.http.Cache-Control ~ "no-cache") {
return(pass);
}
return(lookup);
}

sub vcl_fetch {
if (beresp.status == 500) {
set beresp.saintmode = 10s;
return(restart);
}
set beresp.grace = 5m;
if (req.url ~ "\.(png|gif|jpg|jpeg|css|js|ico)$") {
unset beresp.http.set-cookie;
set beresp.ttl = 3600s;
}
}

1. GET or HEAD メソッド以外はコンテンツサーバに任せる
2. Cache-Control ヘッダがついている場合はコンテンツサーバに任せる
3. コンテンツサーバが 500 レスポンスをしている場合は、10秒まって再度リクエス
4. 静的コンテンツの url の場合、1時間キャッシュする。

ruby+rails+unicorn インストール

sudo yum install git patch pcre pcre-devel openssl openssl-devel curl curl-devel libxslt-devel libxml2-devel sqlite-devel
yum -y install libyaml-devel
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
source ~/.bash_profile
rvm get head && rvm reload
rvm install 1.9.3
rvm use 1.9.3-p125 --create --default
gem update --system
gem install rails
gem install unicorn

epel リポジトリインストール

yum -y install yum-priorities
vi CentOS-Base.repo
- updates を priority=1 にしてほかを 2 にする
cd /usr/local/src
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
cd /etc/yum.repos.d/
vi epel.repo
- epel の priority=2 にする