Debian 11 に Varnish Cache をインストールして使用する方法


このページでは

  1. 要件
  2. Apache Web サーバーのインストールと構成
  3. Varnish Server Debian 11 のインストール
  4. ワニス サーバーの構成
  5. Apache と連携するように Varnish を構成する
  6. ワニス キャッシュを確認する
  7. 結論

Varnish Cache はオープンソースの強力な HTTP アクセラレータであり、340 万を超える Web サイトで使用されています。トラフィックの多い動的な Web サイト用に特別に設計されたリバース キャッシング プロキシとして使用できます。 Web サーバーの前にコンテンツをキャッシュするために使用されます。コンテンツをメモリにキャッシュすることで機能します。ユーザーがキャッシュされたページをリクエストすると、Varnish はバックエンド サーバーから同じページを何度もリクエストする代わりに、キャッシュされたコピーを提供します。多くの VPS ホスティング プロバイダーは、Web サイトのパフォーマンスを向上させるために、テクノロジ スタックの一部として使用しています。

この投稿では、Debian 11 に Apache を使用して Varnish Cache をインストールする方法を示します。

要件

  • Debian 11 を実行するサーバー。
  • サーバーで root パスワードが構成されている。

Apache Web サーバーのインストールと構成

まず、Apache Web サーバーをサーバーにインストールする必要があります。次のコマンドを実行してインストールできます。

apt install apache2 -y

Apache Web サーバーをインストールしたら、Apache 構成ファイルを編集し、デフォルトのポートを別のものに変更する必要があります。

nano /etc/apache2/ports.conf

次の行を見つけます。

Listen 80

そして、それを次の行に置き換えます。

Listen 8080

完了したら、ファイルを保存して閉じます。

次に、Apache のデフォルトの仮想ホスト構成ファイルを編集し、デフォルトのポートを変更する必要もあります。

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

次の行を見つけます。

<VirtualHost *:80>

そして、それを次の行に置き換えます。

<VirtualHost *:8080>

ファイルを保存して閉じ、Apache サービスを再起動して変更を適用します。

systemctl restart apache2

次のコマンドを使用して、Apache リスニング ポートを確認できるようになりました。

ss -antpl | grep apache2

次の出力が表示されます。

LISTEN 0      511                *:8080            *:*    users:(("apache2",pid=19315,fd=4),("apache2",pid=19314,fd=4),("apache2",pid=19313,fd=4),("apache2",pid=19312,fd=4),("apache2",pid=19311,fd=4),("apache2",pid=19310,fd=4))

ワニス サーバー Debian 11 をインストールします。

デフォルトでは、Varnish キャッシュの最新バージョンは Debian デフォルト リポジトリでは利用できません。そのため、Varnish リポジトリを APT に追加する必要があります。

まず、次のコマンドを使用して必要な依存関係をインストールします。

apt install debian-archive-keyring curl gnupg apt-transport-https -y

次に、次のコマンドを使用して Varnish GPG キーを追加します。

curl -fsSL https://packagecloud.io/varnishcache/varnish70/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/varnish.gpg

次に、Varnish ソース ファイルを作成します。

nano /etc/apt/sources.list.d/varnishcache_varnish70.list

次の行を追加します。

deb https://packagecloud.io/varnishcache/varnish70/debian/ bullseye main
deb-src https://packagecloud.io/varnishcache/varnish70/debian/ bullseye main

ファイルを保存して閉じ、次のコマンドでリポジトリ キャッシュを更新します。

apt update -y

次に、次のコマンドを使用して Varnish Cache をインストールします。

apt install varnish -y

Varnish Cache がインストールされたら、次のコマンドを使用して Varnish サーバーを起動します。

systemctl restart varnish

次のコマンドを使用して、Varnish のバージョンを確認することもできます。

varnishd -V

次の出力が得られます。

varnishd (varnish-7.0.3 revision 6a4c6a5c7e66a664b140278c209f0b18c544cab8)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2022 Varnish Software

ワニス サーバーの構成

次に、default.vcl ファイルを編集して、バックエンド サーバーを定義する必要があります。

nano /etc/varnish/default.vcl

バックエンド サーバーに従って次の行を変更します。

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

終了したら、ファイルを保存して閉じます。

Apache と連携するように Varnish を構成する

次に、Varnish 用のカスタム サービス構成ファイルを作成する必要があります。以下のコマンドで作成できます。

mkdir /etc/systemd/system/varnish.service.d
nano /etc/systemd/system/varnish.service.d/customport.conf

次の行を追加します。

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

ファイルを保存して閉じ、次のコマンドで systemd デーモンをリロードします。

systemctl daemon-reload

次に、次のコマンドで Varnish サービスを再起動します。

systemctl restart varnish

次のコマンドを使用して、Varnish Cache のステータスを確認できるようになりました。

systemctl status varnish

次の出力が得られるはずです。

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
     Loaded: loaded (/lib/systemd/system/varnish.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/varnish.service.d
             ??customport.conf
     Active: active (running) since Fri 2022-12-30 05:31:51 UTC; 9s ago
    Process: 24637 ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (>
   Main PID: 24638 (varnishd)
      Tasks: 217
     Memory: 132.4M
        CPU: 535ms
     CGroup: /system.slice/varnish.service
             ??24638 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m
             ??24652 /usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

Dec 30 05:31:50 debian11 systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Dec 30 05:31:51 debian11 varnishd[24638]: Version: varnish-7.0.3 revision 6a4c6a5c7e66a664b140278c209f0b18c544cab8
Dec 30 05:31:51 debian11 varnishd[24638]: Platform: Linux,5.10.0-20-amd64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Dec 30 05:31:51 debian11 varnishd[24638]: Child (24652) Started
Dec 30 05:31:51 debian11 varnishd[24638]: Child (24652) said Child starts
Dec 30 05:31:51 debian11 systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

この時点で、Varnish がインストールされ、ポート 80 でリッスンします。次のコマンドで確認できます。

ss -antpl | grep :varnishd

次の出力が得られます。

LISTEN 0      1024         0.0.0.0:80         0.0.0.0:*    users:(("cache-main",pid=24652,fd=3),("varnishd",pid=24638,fd=3))                                                                                                        
LISTEN 0      1024       127.0.0.1:8443       0.0.0.0:*    users:(("cache-main",pid=24652,fd=7),("varnishd",pid=24638,fd=7))                                                                                                        
LISTEN 0      10         127.0.0.1:39231      0.0.0.0:*    users:(("varnishd",pid=24638,fd=11))                                                                                                                                     
LISTEN 0      10             [::1]:36395         [::]:*    users:(("varnishd",pid=24638,fd=10))                                                                                                                                     
LISTEN 0      1024            [::]:80            [::]:*    users:(("cache-main",pid=24652,fd=5),("varnishd",pid=24638,fd=5))                                                                                                        
LISTEN 0      1024           [::1]:8443          [::]:*    users:(("cache-main",pid=24652,fd=6),("varnishd",pid=24638,fd=6))                                                                                                        

ワニスキャッシュを確認

この時点で、Varnish キャッシュがインストールされ、実行されています。 CURL コマンドを使用して Varnish キャッシュを確認できるようになりました。

curl -I http://localhost/

次の出力でワニスキャッシュを取得します。

HTTP/1.1 200 OK
Date: Fri, 30 Dec 2022 05:33:00 GMT
Server: Apache/2.4.54 (Debian)
Last-Modified: Fri, 30 Dec 2022 04:42:33 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/7.0)
ETag: W/"29cd-5f1043adffc4c-gzip"
Accept-Ranges: bytes
Connection: keep-alive

結論

おめでとう! Debian 11 に Apache を使用して Varnish Cache を正常にインストールしました。Varnish Cache をフロントエンド サーバーとして使用して、Web サイトの読み込み時間を短縮できるようになりました。ご不明な点がございましたら、お気軽にお問い合わせください。