Amazon Linux にVarnish導入

Amazon EC2 で、Varnishを導入しました。

OSは、Amazon Linux、 WebサーバはApacheでvhostを複数起動中。
運用しながらの導入はこんな感じでした

1.varnishのインストール

1.1 AWSのレポジトリ確認

$ yum list | grep varnish
varnish.x86_64 3.0.5-1.15.amzn1 @amzn-main
varnish-libs.x86_64 3.0.5-1.15.amzn1 @amzn-main
collectd-varnish.x86_64 5.4.1-1.5.amzn1 amzn-main
varnish-docs.x86_64 3.0.5-1.15.amzn1 amzn-main
varnish-libs.i686 3.0.5-1.15.amzn1 amzn-main
varnish-libs-devel.x86_64 3.0.5-1.15.amzn1 amzn-main

AWSにVarinish 3.0.5がありました。Varnish 4じゃないけど、これにしました。

1.2 Varnish インストール

$sudo yum install varnish

1.3 varnishの設定変更

外部からVarnishへの接続ポートを80に変更

/etc/sysconfig/varnish /を編集

VARNISH_LISTEN_PORT=6081 を削除
VARNISH_LISTEN_PORT=80 を追加

VarnishとApacheとの接続を8080に設定

/etc/varnish/default.vcl を編集

backend default {
.host = “127.0.0.1”;
.port = “8080”;
}

2. apacheの設定変更

2.1 ポートを80から8080に変更

変更前変更後 
 Listen 80Listen 8080 
 NameVirtualHost *:80 NameVirtualHost *:8080 
<VirtualHost *:80> <VirtualHost *:8080>全てのvhostの設定を8080に

3.設定変更の反映(システム変更)

3.1 apacheを再起動してポート80からポート8080に移動

$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

8080に移動していることを確認

$ sudo netstat -plan | grep httpd
tcp 0 0 :::8080 :::* LISTEN 29325/httpd
tcp 0 0 :::443 :::* LISTEN 29325/httpd

3.2 Varnish起動

空いたポート80でVarnishを起動

$ sudo service varnish start
Starting Varnish Cache: [ OK ]

4.確認

待ち受けの確認

$ sudo netstat -plan | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29361/varnishd
tcp 0 0 :::80 :::* LISTEN 29361/varnishd
tcp 0 0 :::8080 :::* LISTEN 29325/httpd

Webアクセスで確認

5.設定変更の恒久化

varnish を自動起動に

現状確認

$ chkconfig | grep varnish
varnish 0:off 1:off 2:off 3:off 4:off 5:off 6:off
varnishlog 0:off 1:off 2:off 3:off 4:off 5:off 6:off
varnishncsa 0:off 1:off 2:off 3:off 4:off 5:off 6:off

自動起動にする

$ sudo chkconfig varnish on
$ chkconfig | grep varnish
varnish 0:off 1:off 2:on 3:on 4:on 5:on 6:off
varnishlog 0:off 1:off 2:off 3:off 4:off 5:off 6:off
varnishncsa 0:off 1:off 2:off 3:off 4:off 5:off 6:off

いろいろバックアップ