Carpe Diem

  Top > スポンサー広告> リバースプロキシ > Varnish でキャッシュサーバ構築  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Varnish でキャッシュサーバ構築

2014 - 08/28 [Thu] - 20:55

Varnish というリバースプロキシを使って簡単なキャッシュサーバを構築します。
キャッシュサーバを使って静的ファイルであったり、PHPでの重い処理を初回だけで済ませて高速化します。

◆環境
Ubuntu 14.04
Apache 2.4.7
Varnish 3.0.5



◆事前準備
Webサーバ用のApacheと重い処理の検証コード書くためにPHPを入れておきます。


$ sudo aptitude install apache2 php5 libapache2-mod-php5


インストールしたら検証用コードを作ります。

$ sudo mkdir /var/www/html/test
$ sudo vim /var/www/html/test/index.php

<?php
sleep(3);
?>
hello world

確認してみましょう

$ curl localhost/test/
hello world

3秒後に表示されました。ちゃんと動きますね。


◆Apache のポートを変更する
通常の80番ポートの設定を
クライアント(80) ー (80)Webサーバ

クライアント(80) ー (80)Varnish(8080) ー (8080)Webサーバ

とするために、設定ファイルを編集します。
変更するファイルは2つです。

/etc/apache2/ports.conf
/etc/apache2/sites-available/000-default.conf



$ sudo vim /etc/apache2/ports.conf

80番ポートを8080番に変更します。
Listen 8080

もう1つも編集します。

$ sudo vim /etc/apache2/sites-available/000-default.conf

<VirtualHost *:8080>

編集が終わったら再起動します。

$ sudo service apache2 restart

確認します。

$ curl http://192.168.33.10:8080/test/
hello world

ポートを変えて動くことが確認できました。

◆Varnish を導入する

$ sudo aptitude install varnish

ポートとWebサーバ指定のために2つファイルを編集します。

/etc/default/varnish
/etc/varnish/default.vcl


デフォルトでは 6081 となっているVarnishのポートを 80 に変更します。

$ sudo vim /etc/default/varnish

DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"

次にバーチャルホストの設定をします。先ほど Apache で設定した 8080 番ポートを指定します。

$ sudo vim /etc/varnish/default.vcl

backend default {
.host = "127.0.0.1";
.port = "8080";


設定したら再起動します。

$ sudo service varnish restart


◆abで動作検証
ab をインストールしておきます。

$ sudo aptitude install apache2-utils


◯Apache のみの場合

$ ab -n5 -c1 http://localhost:8080/test/
Time taken for tests: 15.011 seconds

5リクエスト投げていて、1つの処理に3秒スリープがあるので合計15秒。
すべてのリクエストでPHPの処理が走っていますね。

◯Varnish を使った場合

$ ab -n5 -c1 http://localhost/test/
Time taken for tests: 3.004 seconds

最初のリクエストではsleepが走りますが、以降のリクエストではキャッシュによる高速化ができてますね。
これで一度キャッシュが作られたのでもう一度実行してみましょう。

$ ab -n5 -c1 http://localhost/test/
Time taken for tests: 0.001 seconds

めちゃくちゃ早いですね。

Varnish はキャッシュの永続化をしないため、再起動するとキャッシュクリアされます。

以上です。お疲れ様でした。


ソース:
INSTALL VARNISH 3 TO RUN WITH APACHE 2 ON UBUNTU SERVER
とってもやさしいリバースプロキシVarnishの使い方

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。