ウェブサイト検索

CentOS 7 に Nginx 用の Varnish Cache 5.2 をインストールする方法


Varnish Cache (Varnish とも呼ばれます) は、Web サーバーを高速化するために設計されたオープンソースの高性能 HTTP アクセラレータです。前回の記事では、CentOS 7 および CentOS 8 で Apache の Varnish Cache をセットアップする方法を説明しました。

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

要件

  1. Apache がインストールされた CentOS 7
  2. 静的 IP アドレスを持つ CentOS 7

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

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

yum install nginx

2. インストールが完了したら、Nginx サービスをとりあえず開始し、システム起動時に自動的に開始されるようにします。

systemctl start nginx
systemctl enable nginx
systemctl status nginx

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

ステップ 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 キャッシュを更新し、ワニス キャッシュ パッケージをインストールします (y または yes と入力して GPG キーを受け入れることを忘れないでください) パッケージのインストール中):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. Varnish Cache をインストールすると、メインの実行可能ファイルが /usr/sbin/varnishd としてインストールされ、Varnish 設定ファイルは に配置されます。 >/etc/ワニス/:

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

9. 次のように、varnish サービスを開始し、システム起動時に自動的に開始できるようにし、そのステータスを確認して稼働していることを確認します。

systemctl start varnish
systemctl enable varnish
systemctl status varnish

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 を構成する

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

Nginx 構成ファイル /etc/nginx/nginx.conf を開き、 listen 80 という行を見つけて、サーバーと同様に listen 8080 に変更します。以下のスクリーンショットに示されているブロック。

vi /etc/nginx/nginx.conf

: これは、経由で提供するウェブサイトのすべてのサーバー ブロック設定ファイル (通常は /etc/nginx/conf.d/ の下に作成されます) で行う必要があります。 > ニスです。

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

systemctl edit --full  varnish

線は次のようになります。

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

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

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 でワニス キャッシュをテストする

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

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 Github リポジトリから見つけることができます: https://github.com/varnishcache/varnish-cache

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