ウェブサイト検索

Debian および Ubuntu に Apache 用の Varnish Cache 5.2 をインストールする


Varnish Cache (Varnish とも呼ばれます) は、最新の設計を備えたオープンソースの高性能 HTTP アクセラレータです。キャッシュをメモリに保存することで、クライアントからの要求に応じて同じ Web ページを何度も作成する際に Web サーバーのリソースが無駄にならないようにします。

Web サーバーの前で実行するように構成して、より高速にページを提供できるため、Web サイトの読み込みが速くなります。バックエンドのヘルスチェック、URL 書き換え、「デッド」バックエンドの適切な処理による負荷分散をサポートし、ESI (エッジサイドインクルード) の部分的なサポートも提供します。

Varnish Cache に関する一連の記事では、CentOS 7 システム上で Nginx 用の Varnish と Apache Web サーバー用の Varnish をセットアップする方法を説明しました。

この記事では、Debian および Ubuntu システム上の Apache HTTP サーバーのフロントエンドとして Varnish Cache 5.2 をインストールして構成する方法を説明します。

要件:

  1. LAMP スタックがインストールされた Ubuntu システム
  2. LAMP スタックがインストールされた Debian システム
  3. 静的 IP アドレスを持つ Debian/Ubuntu システム

ステップ 1: Debian および Ubuntu に Varnish Cache をインストールする

1. 幸いなことに、最新バージョンの Varnish Cache 5 (つまり、この記事の執筆時点では 5.2) 用にコンパイル済みのパッケージがあるため、以下に示すように、システムに公式の Varnish リポジトリを追加する必要があります。

curl -L https://packagecloud.io/varnishcache/varnish5/gpgkey | sudo apt-key add -

重要: Debian を使用している場合は、公式 Debian リポジトリを確認するために debian-archive-keyring パッケージをインストールしてください。 。

sudo apt-get install debian-archive-keyring

2. その後、以下のリポジトリ設定を含む /etc/apt/sources.list.d/varnishcache_varnish5.list という名前のファイルを作成します。 ubuntuxenial を、ご使用の Linux ディストリビューションとバージョンに置き換えてください。

deb https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial main  
deb-src https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial  main

3. 次に、次のコマンドを使用してソフトウェア パッケージ リポジトリを更新し、ワニス キャッシュをインストールします。

sudo apt update
sudo apt install varnish

4. Varnish Cache をインストールすると、メインの設定ファイルが /etc/varnish/ ディレクトリにインストールされます。

  • /etc/default/varnish – varnish 環境設定ファイル。
  • /etc/varnish/default.vcl – メインのバーニッシュ設定ファイル。バニッシュ設定言語 (VCL) を使用して記述されます。
  • /etc/varnish/secret – ワニスの秘密ファイル。

Varnish のインストールが成功したことを確認するには、次のコマンドを実行してバージョンを確認します。

varnishd -V

ステップ 2: Varnish Cache を使用するように Apache を構成する

5. 次に、Varnish Cache と連携するように Apache を設定する必要があります。デフォルトでは、Apache はポート 80 で待機します。Varnish キャッシュの背後で実行できるようにするには、デフォルトの Apache ポートを 8080 に変更する必要があります。

したがって、Apache ポート設定ファイル /etc/apache2/ports.conf を開き、listen 80 という行を見つけて、 それをlisten 8080 に変更します。

あるいは、次のように sed コマンドを実行してポート 808080 に変更します。

sudo sed -i "s/Listen 80/Listen 8080/" /etc/apache2/ports.conf

6. また、/etc/apache2/sites-available/ にある仮想ホスト ファイルを変更する必要があります。

sudo vi /etc/apache2/sites-available/000-default.conf

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

<VirtualHost *:8080>
	#virtual host configs here
</VirtualHost>

7. systemd を使用するシステムでは、/etc/default/varnish 環境設定ファイルは非推奨となり、考慮されなくなりました。

ファイル /lib/systemd/system/varnish.service/etc/systemd/system/ にコピーし、それにいくつかの変更を加える必要があります。

sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
sudo vi /etc/systemd/system/varnish.service

サービス ディレクティブ ExecStart を変更する必要があります。これは、varnish デーモンの実行時オプションを定義します。ワニスがリッスンするポートを定義する -a フラグの値を 6081 から 80 までに設定します。

8. 上記の変更を varnish サービス ユニット ファイルに反映するには、次の systemctl コマンドを実行します。

sudo systemctl daemon-reload

9. 次に、/etc/varnish/default.vcl 構成ファイルで、Apache を Varnish プロキシのバックエンド サーバーとして構成します。

sudo vi /etc/varnish/default.vcl 

バックエンド セクションを使用して、コンテンツ サーバーのホスト IP とポートを定義できます。以下は、ローカルホストを使用するデフォルトのバックエンド構成です (実際のコンテンツ サーバーを指すように設定します)。

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

10. 上記の設定をすべて実行したら、次のコマンドを入力して Apache および Varnish デーモンを再起動します。

sudo systemctl restart apache
sudo systemctl start varnish
sudo systemctl enable varnish
sudo systemctl status varnish

ステップ 3: Apache でワニス キャッシュをテストする

11. 最後に、以下の cURL コマンドを使用して HTTP ヘッダーを表示し、Varnish キャッシュが有効になっていて、Apache HTTP サーバーと連携しているかどうかをテストします。

curl -I http://localhost

それでおしまい!ワニス キャッシュの詳細については、https://github.com/varnishcache/varnish-cache を参照してください。

このチュートリアルでは、Debian および Ubuntu システム上の Apache HTTP サーバー用に Varnish Cache 5.2 をセットアップする方法を説明しました。ご意見やご質問がございましたら、以下のフィードバックを通じて私たちと共有してください。