Varnish Cache · 3 min read · Feb 12, 2026
CentOS 8にApache/Nginx用のVarnish Cache 6をインストールする

Varnish Cacheは、オープンソースソフトウェアとして利用可能な強力なリバースHTTPプロキシであり、Webアプリケーションの速度を向上させるために使用されます。Varnishは静的および動的コンテンツの両方をキャッシュします。すべての受信リクエストは、Webサーバーのバックエンドに到達する前に処理されます。VarnishはWebブラウザとApacheまたはNginx Webサーバーの間に位置します。Varnishキャッシュは、すべての受信ページリクエストをメモリに保存するため、Webサーバーは同じWebページを何度も作成する必要がありません。
この記事では、CentOS 8にApacheおよびNginxと共にVarnishキャッシュをインストールする方法を示します。
前提条件
- CentOS 8を実行しているサーバー。
- サーバーにルートパスワードが設定されていること。
始めに
始める前に、システムパッケージを最新バージョンに更新することをお勧めします。以下のコマンドを実行して更新できます:
dnf update -yすべてのパッケージが更新されたら、次のステップに進むことができます。
Varnishのインストール
デフォルトでは、VarnishパッケージはCentOS 8のデフォルトリポジトリに含まれています。以下のコマンドを実行してインストールできます:
dnf install varnish -yVarnishをインストールした後、Varnishのデフォルト設定ファイルを編集し、NginxまたはApacheのWebサーバーのバックエンドアドレスを定義します。
nano /etc/varnish/default.vcl以下の行を変更します:
backend default {
.host = "127.0.0.1";
.port = "8080";
}終了したら、ファイルを保存して閉じます。
Varnishの設定
デフォルトでは、Varnishはポート6081でリッスンします。したがって、Varnishをポート80でリッスンするように設定する必要があります。varnish.serviceファイルを編集して設定できます:
nano /lib/systemd/system/varnish.service以下の行を見つけます:
ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m以下の行に置き換えます:
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256mファイルを保存して閉じたら、変更を適用するためにsystemdデーモンをリロードします:
systemctl daemon-reload次に、Varnishサービスを開始し、システム再起動時に自動的に開始されるように有効にします:
systemctl start varnish
systemctl enable varnish以下のコマンドを使用してVarnishのステータスを確認することもできます:
systemctl status varnish以下の出力が得られるはずです:
? varnish.service - Varnish Cache, a high-performance HTTP accelerator
Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2021-03-12 04:17:32 EST; 4s ago
Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
Main PID: 6392 (varnishd)
Tasks: 217
Memory: 99.5M
CGroup: /system.slice/varnish.service
??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts
Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.この時点で、Varnishは開始され、ポート80でリッスンしています。以下のコマンドを使用して確認できます:
ss -antpl | grep varnishd以下の出力が得られるはずです:
LISTEN 0 10 127.0.0.1:34977 0.0.0.0:* users:(("varnishd",pid=1532,fd=11))
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6))
LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7))
LISTEN 0 10 [::1]:34909 [::]:* users:(("varnishd",pid=1532,fd=10)) この時点で、Varnishはインストールされ、設定されています。次のステップに進むことができます。
Varnishと連携するNginxのインストールと設定
まず、サーバーにNginxパッケージをインストールする必要があります。以下のコマンドでインストールできます:
dnf install nginx -yインストールが完了したら、Nginxのリッスンポートを80から8080に変更する必要があります。Nginxのデフォルト設定ファイルを編集して行うことができます:
nano /etc/nginx/nginx.conf以下の行を変更します:
listen 8080 default_server;
listen [::]:8080 default_server;ファイルを保存して閉じたら、以下のコマンドを使用してNginxの構文エラーを確認します:
ginx -t以下の出力が得られるはずです:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful次に、Nginxサービスを開始し、システム再起動時に自動的に開始されるように有効にします:
systemctl start nginx
systemctl enable nginx以下のコマンドを使用してNginxのリッスンポートを確認することもできます:
ss -antpl | grep 8080以下の出力が得られるはずです:
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8))
LISTEN 0 128 [::]:8080 [::]:* users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9)) この時点で、Varnishキャッシュはインストールされ、ポート80で受信したすべてのリクエストをポート8080でリッスンしているNginx Webサーバーに転送するように設定されています。
以下のコマンドを使用してVarnishキャッシュが機能しているかどうかを確認できます:
curl -I http://localhost以下の出力が得られるはずです:
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 12 Mar 2021 09:18:32 GMT
Content-Type: text/html
Content-Length: 4057
Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT
ETag: "5d9bab28-fd9"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-aliveVarnishと連携するApacheのインストールと設定
まず、システムにApache Webサーバーパッケージをインストールする必要があります。以下のコマンドでインストールできます:
dnf install httpd -yApacheをインストールした後、Apacheのデフォルト設定ファイルを編集し、リッスンポートを80から8080に変更します。
nano /etc/httpd/conf/httpd.conf以下の行を変更します:
Listen 8080ファイルを保存して閉じたら、Apacheサービスを開始し、システム再起動時に自動的に開始されるように有効にします:
systemctl start httpd
systemctl enable httpd以下のコマンドを使用してApacheのリッスンポートを確認することもできます:
ss -antpl | grep httpd以下の出力が得られるはずです:
LISTEN 0 128 *:8080 *:* users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))この時点で、Varnishキャッシュはインストールされ、ポート80で受信したすべてのリクエストをポート8080でリッスンしているApache Webサーバーに転送するように設定されています。
以下のコマンドを使用してVarnishキャッシュが機能しているかどうかを確認できます:
curl -I http://localhost以下の出力が得られるはずです:
Date: Fri, 12 Mar 2021 09:21:14 GMT
Server: Apache/2.4.37 (centos)
Content-Location: index.html.zh-CN
Vary: negotiate,accept-language
TCN: choice
Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT
ETag: "fa6-58b405e7d6fc0;5bd5365602e05"
Accept-Ranges: bytes
Content-Length: 4006
Content-Type: text/html; charset=UTF-8
Content-Language: zh-cn
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Connection: keep-aliveVarnishコマンドラインの操作
Varnishには、Varnishを監視および制御するのに役立ついくつかの便利なユーティリティが付属しています。
varnishadmは、構成されたバックエンドをリストするために使用されるコマンドラインユーティリティです。
varnishadm以下の出力が得られるはずです:
200
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Type 'help' for command list.
Type 'quit' to close CLI session.次に、以下のコマンドを実行してすべてのバックエンドをリストします:
varnish> backend.list以下の出力が得られるはずです:
200
Backend name Admin Probe Last updated
boot.default probe Healthy (no probe) Sat, 13 Mar 2021 03:00:02 GMTvarnishlog
varnishlogユーティリティは、すべてのユーザーリクエストのログを表示するために使用されます。
varnishlog以下の出力が得られるはずです:
* << BeReq >> 6
- Begin bereq 5 fetch
- VCL_use boot
- Timestamp Start: 1615604631.507187 0.000000 0.000000
- BereqMethod GET
- BereqURL /
- BereqProtocol HTTP/1.1
- BereqHeader Host: 69.87.218.214
- BereqHeader Upgrade-Insecure-Requests: 1
- BereqHeader User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
- BereqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
- BereqHeader Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
- BereqHeader X-Forwarded-For: 106.213.193.241
- BereqHeader Accept-Encoding: gzip
- BereqHeader X-Varnish: 6
- VCL_call BACKEND_FETCH
- VCL_return fetch
- BackendOpen 31 boot.default 127.0.0.1 8080 127.0.0.1 58860
- BackendStart 127.0.0.1 8080
- Timestamp Bereq: 1615604631.507458 0.000270 0.000270
- Timestamp Beresp: 1615604631.507844 0.000657 0.000386
- BerespProtocol HTTP/1.1
- BerespStatus 200
- BerespReason OK
- BerespHeader Server: nginx/1.14.1
- BerespHeader Date: Sat, 13 Mar 2021 03:03:51 GMT
- BerespHeader Content-Type: text/html
- BerespHeader Content-Length: 4057
- BerespHeader Last-Modified: Mon, 07 Oct 2019 21:16:24 GMTvarnishstat
varnishstatコマンドは、メモリ内統計、ストレージ、作成されたスレッド、削除されたオブジェクトに関する情報を提供します。
varnishstat以下の画面が表示されるはずです:

varnishtop
varnishtopコマンドは、varnishdの共有メモリログを読み取り、最も一般的に発生するログエントリのリストを継続的に更新して表示します。
varnishtop以下の画面が表示されるはずです:

varnishhist
Varnishhistは、varnishログを解析し、処理による最後のnリクエストを印刷します。
varnishhist以下の画面が表示されるはずです:

結論
上記のガイドでは、ApacheおよびNginx Webサーバーと共にVarnishキャッシュをインストールおよび設定する方法を学びました。これで、Varnishキャッシュを本番環境に実装し、ウェブサイトのパフォーマンスを向上させることができます。質問があればお気軽にお尋ねください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。