ウェブサイト検索

Varnish Cache 5.2 をインストールして CentOS 7 上の Apache パフォーマンスを向上させる


Varnish Cache (一般に Varnish として知られています) は、Web サーバーの高速化を目的としたオープンソースの人気のあるリバース プロキシ HTTP アクセラレータです。これは、過度に使用される API エンドポイントや、大規模なコンテンツを提供し、高トラフィックが発生する動的サイト向けに設計されています。

基本的には、CPU 負荷をスケールダウンするのに役立ちます。 Web サーバーでの負荷分散をサポートし、RAM にキャッシュを保存することで Web ブラウザがサイトを迅速にロードできるようにします。ほんの数例を挙げると、FacebookTwitterWikipediaなど、多くの大企業がこのサービスを使用しています。

要件

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

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

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

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

yum install httpd

2. Apache をインストールしたら、とりあえず起動し、システム起動時に自動的に起動するようにします。

systemctl start httpd
systemctl enable httpd
systemctl status httpd

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

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

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

4. 現在、最新バージョンの Varnish Cache 6 (つまり、この記事の執筆時点では 6.5) 用にコンパイル済みの RPM パッケージが用意されています。公式のワニス キャッシュ リポジトリを追加する必要があります。

その前に、EPEL リポジトリを有効にして、図に示すようにいくつかの依存関係パッケージをインストールする必要があります。

yum install -y epel-release

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

yum install pygpgme yum-utils

6. 次に、以下のリポジトリ設定を含む /etc/yum.repos.d/varnishcache_varnish65.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: Varnish Cache を使用するように Apache を構成する

11. 次に、Varnish Cache と連携して動作するように Apache を設定します。デフォルトでは、Apache はポート 80 でリッスンします。デフォルトの HTTPD ポートを 8080 に変更する必要があります。これにより、HTTPD が Varnish キャッシュの背後で実行されるようになります。

図に示すように、sed コマンドを使用してポート 808080 に変更できます。

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

: また、Varnish 経由でサービスを提供する Web サイトごとに、仮想ホスト構成のポートを変更する必要があります。テスト サイトの構成は次のとおりです (/etc/httpd/conf.d/tecmint.lan.conf)。

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

12. 次に、varnish systemd 設定ファイルを開き、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 構成ファイルで、Apache を Varnish プロキシのバックエンド サーバーとして設定します。

vi /etc/varnish/default.vcl 

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

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

バックエンド サーバーがアドレス 10.42.1.10 の別のサーバーで実行されている場合、ホスト パラメータはこの IP アドレスを指す必要があります。

backend server1 {
    .host = "10.42.1.10";
    .port = "8080";
}

14. 必要な構成をすべて実行した後、HTTPD とワニス キャッシュを再起動して、上記の変更を有効にします。

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

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

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

curl -I http://localhost
サンプル出力
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

詳細については、Varnish Cache Github リポジトリを確認してください: https://github.com/varnishcache/varnish-cache

このチュートリアルでは、CentOS 7 上の Apache HTTP サーバー用のVarnish Cache 6.5 プロキシをセットアップする方法について説明しました。 共有したい質問や追加のアイデアがある場合は、以下のフィードバック フォームを使用して返信してください。 。