CentOS7でVarnishCacheを使用してApacheを高速化する方法
Varnish Cache(一般にVarnishとして知られています)は、Webサーバーの高速化を目的としたオープンソースの人気のあるリバースプロキシHTTPアクセラレータです。これは、過度に利用されているAPIエンドポイント用に設計されており、大量のコンテンツを提供し、トラフィックが多い動的サイト用にも設計されています。
基本的に、CPU負荷を縮小するのに役立ちます。 Webサーバーでの負荷分散をサポートし、キャッシュをRAMに保存した結果、Webブラウザがサイトをすばやくロードできるようにします。 Facebook、Twitter、Wikipediaなど、多くの大企業がこれを使用しています。
- A CentOS 7 with Apache installed
- A CentOS 7 with a static IP address
この記事では、Varnish Cache6.5をCentOS7のApacheWebサーバーのフロントエンドとしてインストールして使用する方法について説明します(RHEL 7でも機能します)。
ステップ1:CentOS7にApacheWebサーバーをインストールする
1.最初に、次のようにYUMパッケージマネージャーを使用して、デフォルトのCentOSソフトウェアリポジトリからApacheHTTPサーバーをインストールします。
# 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:CentOS7にVarnishCacheをインストールする
4.これで、Varnish Cache 6の最新バージョン(執筆時点では6.5)用にコンパイル済みのRPMパッケージが用意されているため、公式のVarnishCacheリポジトリを追加する必要があります。
その前に、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
重要:以下の構成の el
と 7
を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/varnish /にあります。
- /etc/varnish/default.vcl – this is the main varnish configuration file, it is written using vanish configuration language (VCL).
9.次に、ワニスサービスを開始し、システムの起動中に自動的に開始できるようにし、ステータスを確認して、次のように稼働していることを確認します。
# 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:VarnishCacheと連携するようにApacheを構成する
11.次に、VarnishCacheと連携して動作するようにApacheを構成します。デフォルトでは、Apacheはポート80でリッスンします。デフォルトのHTTPDポートを8080に変更する必要があります。これにより、HTTPDがVarnishキャッシングの背後で実行されるようになります。
図のように、sedコマンドを使用してポート80を8080に変更できます。
# 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の別のサーバーで実行されている場合、hostパラメーターはこのIPアドレスを指している必要があります。
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
14.必要なすべての構成を実行した後、HTTPDとVarnishキャッシュを再起動して、上記の変更を有効にします。
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
ステップ4:ApacheでVarnishキャッシュをテストする
15.最後に、Varnishが有効になっていて、HTTPヘッダーを表示するために使用できる以下のcURLコマンドを使用してHTTPDサービスを操作しているかどうかをテストします。
# 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
このチュートリアルでは、CentOS7でApacheHTTPサーバー用にVarnishCache 6.5プロキシを設定する方法を説明しました。共有するクエリや追加のアイデアがある場合は、以下のフィードバックフォームを使用して返信してください。