cloudpackエバンジェリストの吉田真吾@yoshidashingo)です。

Varnish とはなにか

公式ページにあるとおり「HTTPリバースプロキシキャッシュとして知られるWebアプリケーションアクセラレーター」です。Web/APサーバーのフロントに配置して、静的コンテンツや動的コンテンツの一部をキャッシュし、要求に応じたページを折り返すことでオリジンのWeb/APサーバーへのアクセスを緩和することができます。
Varnish Community | Varnish makes websites fly!

環境構築

項目 バージョン 備考
Amazon EC2 CentOS 6.5 ami-7fa6fe7e / HVM
Amazon EBS GP2 SSD
Varnish Cache 4.0.2

1.EC2を起動する

いずれもAMIはマッツォさんのCentOS6.5(HVM)、Tokyoリージョンなので ami-7fa6fe7e
CentOS6.5 HVM AMI (SR-IOV対応) – aws memo

  • Varnishのオリジンサーバーの起動
  • Varnish Cache用のサーバーの起動

2.オリジンサーバーの構築

この2はオリジンの話なので読み飛ばしてもらってもOK

以下を参照

チュートリアル: LAMP ウェブサーバーのインストール – Amazon Elastic Compute Cloud

# yum update
# yum grouplist
# yum groupinstall -y "Web Server" "PHP Support"
# yum install -y php-mysql
# service httpd start
# chkconfig httpd on
# chkconfig --list httpd
# yum install -y http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum install -y mysql mysql-devel mysql-server mysql-utilities
# service mysqld start
# mysql_secure_installation
# chkconfig mysqld on
# chkconfig --list mysqld
確認
  • ドキュメントルート
    • Apacheの画面が表示される
  • PHP
    # echo "" > /var/www/html/phpinfo.php
    

    Varnish 4.0 on CentOS 6.5(EC2/HVM): PHPインストール後動作確認

  • MySQL
    # mysql -u root -p
    mysql> show databases;
    mysql> select sysdate() from dual;
    

3.Varnishサーバーのセットアップ

以下を見ながら作業します。
Installation on RedHat | Varnish Community
centos6 に varnish 4.x install – Qiita
Varnishに関していろいろ調べて試してみた – Qiita

その前にSELINUXをdisabledにする

これをやっておかないとservice varnish startが失敗します。

# vi /etc/sysconfig/selinux
SELINUX=disabled
# reboot
Varnish Cache 4.0.2 のインストール
  • wgetを入れる
    # yum install -y wget
    
  • jemallocのリポジトリ追加とインストール
    # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/jemalloc-3.6.0-1.el6.x86_64.rpm
    # rpm -ivh jemalloc-3.6.0-1.el6.x86_64.rpm
    
  • Varnishのリポジトリ追加とインストール
    # rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.0.el6.rpm
    # yum install -y varnish
    
  • サービスの自動起動登録
    # chkconfig varnish on
    # chkconfig varnishncsa on
    # chkconfig varnishlog on
    
起動オプションの設定
  • Varnishの待ち受けポートを変更する(Varnishが80で待ってるとして)
    	# vi /etc/sysconfig/varnish
    	VARNISH_LISTEN_PORT=80
    	
Varnishのバックエンド設定
  • バックエンドサーバーのIPアドレス&ポートを変更(オリジンサーバーが80で待っているとして)&確認する
    	# vi /etc/varnish/default.vcl
    	backend default {
    	    .host = "<オリジンサーバーのIPアドレス(内部IPがベター)>";
    	    .port = "80";
    	}
    
    	# varnishd -C -f /etc/varnish/default.vcl
    	
ログ設定の変更
# vi /etc/init.d/varnishncsa
全部起動
# service varnish start
# service varnishncsa start
# service varnishlog start
確認
  • バックエンドの設定確認
    	# varnishadm backend.list
    	
  • 画面確認
    Varnish 4.0 on CentOS 6.5(EC2/HVM): Apache動作確認
    Varnish 4.0 on CentOS 6.5(EC2/HVM): phpinfo で最終確認

元記事はこちらです。
Varnish 4.0 on CentOS 6.5(EC2/HVM)