CentOS 7でVarnish Cacheを使用してNginxを高速化する方法

Varnish CacheVarnishとも呼ばれます)は、ウェブサーバーの高速化を目的としたオープンソースの高性能HTTPアクセラレータです。前回の記事では、CentOS 7およびCentOS 8Varnish CacheApacheに設定する方法を説明しました。

この記事では、CentOS 7Nginx HTTPサーバーのフロントエンドとしてVarnish Cacheをインストールして使用する方法を示します。このガイドはRHEL 7でも動作するはずです。

要件

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

ステップ1:CentOS 7にNginx Webサーバーをインストールする

1.まず、デフォルトのCentOSソフトウェアリポジトリからYUMパッケージマネージャーを使用してNginx HTTPサーバーをインストールします。

# yum install nginx
Install Nginx on CentOS 7

2.インストールが完了したら、Nginxサービスを起動し、システムの起動時に自動的に起動するように設定します。

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Start and Enable Nginx at Boot

3.次に、以下のコマンドを使用してポート80での着信パケットを許可するためのシステムファイアウォールルールを変更します。

# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload
Open Nginx Port on Firewall

ステップ2:CentOS 7にVarnish Cacheをインストール

4. 現在、最新バージョンのVarnish Cache 6(つまり、執筆時点では6.5)の事前コンパイルされたRPMパッケージがありますので、公式のVarnish Cacheリポジトリを追加する必要があります。

その前に、いくつかの依存パッケージをインストールするためにEPELリポジトリを有効にする必要があります。

# yum install -y epel-release

5. 次に、GPG署名を処理するためのパッケージであるpygpgmeと、yumの機能をさまざまな方法で拡張する便利なユーティリティのコレクションであるyum-utilsをインストールします。

# yum install pygpgme yum-utils

6. 以下のリポジトリ構成が含まれる/etc/yum.repos.d/varnishcache_varnish5.repoというファイルを作成します。

# vi /etc/yum.repos.d/varnishcache_varnish65.repo

重要: 構成のel7をご使用のLinuxディストリビューションとバージョンに置き換えてください。

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. 以下のコマンドを実行してローカルyumキャッシュを更新し、varnishキャッシュパッケージをインストールします(パッケージのインストール時にGPGキーを受け入れるためにyまたはyesを入力することを忘れないでください):

# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish 
Install Varnish Cache in CentOS 7

8. Varnish Cacheをインストールした後、メインの実行可能ファイルは/usr/sbin/varnishdとしてインストールされ、varnish構成ファイルは/etc/varnish/にあります:

  • /etc/varnish/default.vcl – これはメインのvarnish構成ファイルであり、vanish構成言語(VCL)を使用して書かれています。

9. 以下のように、Varnishサービスを開始し、システムの起動時に自動的に開始されるように有効にし、その状態を確認してください。

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Start Varnish Cache

10. Varnishのインストールが成功したことを確認するには、システムにインストールされたVarnishの実行可能ファイルの場所とバージョンを確認します。

$ which varnishd
$ varnishd -V
サンプル出力
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

ステップ3:NginxをVarnishキャッシュと連携させるように設定する

11. このステップでは、NginxをVarnishキャッシュと連携させる必要があります。デフォルトでは、Nginxはポート80でリスンしますので、デフォルトのNginxポートを8080に変更して、Varnishキャッシングの背後で実行されるようにします。

Nginxの設定ファイル/etc/nginx/nginx.confを開き、リスンするポートを80から8080に変更します。以下のスクリーンショットに示すサーバーブロックのように。

# vi /etc/nginx/nginx.conf
Configure Nginx Listening Port

注意:これは、/etc/nginx/conf.d/(通常は作成されたすべてのサーバーブロック構成ファイル)に行う必要があります。Varnishを介して提供したいウェブサイトのために。

12. 次に、varnishサービスの構成ファイルを開き、Varnishがリスンするポートを指定するExecStartパラメータを見つけて、その値を6081から80に変更します。

# systemctl edit --full  varnish

行は以下のようになります。

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Change Varnish Cache Port

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

# vi /etc/varnish/default.vcl 

バックエンドセクションを見つけ、ホストIPとポートを定義してください。以下はデフォルトのバックエンド構成です。これを実際のコンテンツサーバーを指すように設定してください。

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

14. すべての必要な設定を行った後、Nginx HTTPDとVarnishキャッシュを再起動して上記の変更を有効にします。

# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish

ステップ4:NginxでVarnishキャッシュをテストする

15. 最後に、以下の<cURLコマンドを使用してNginxサービスでVarnishキャッシュが有効かどうかをテストしてください。HTTPヘッダーを表示します。

# curl -I http://localhost
サンプル出力
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Varnish Cacheの追加情報は、Varnish Cache Githubリポジトリから入手できます:https://github.com/varnishcache/varnish-cache

このチュートリアルでは、CentOS 7のNginx HTTPサーバーにVarnish Cacheを設定する方法を説明しました。質問や追加のアイデアがある場合は、以下のコメントフォームを使用してお知らせください。

Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/