ウェブサイト検索

CentOS/RHEL 8 に Apache 用の Varnish Cache をインストールする方法


Varnish Cache は、無料のオープンソースの最新の高性能 Web アプリケーション アクセラレータです。これは、Web コンテンツをサーバー メモリ (キャッシュ) に保存することにより、コンテンツをキャッシュして Web サーバーのパフォーマンスを高速化する高速リバース HTTP プロキシです。これは、Apache (HTTPD) Web サーバーなどのオリジン サーバーの前で実行されるように構成されています。

クライアントがコンテンツをリクエストすると、VarnishHTTP リクエストを受け入れ、リクエストをオリジン サーバーに送信し、返されたオブジェクトをキャッシュして、クライアント リクエストに応答します。次回クライアントが同じコンテンツをリクエストすると、Varnish はキャッシュからそのコンテンツを提供します。これにより、今後の同等のリクエストに対する応答時間とネットワーク帯域幅の消費が削減されます。

Varnish は、HTTP リクエスト ルーター、Web アプリケーション ファイアウォール、ロード バランサーなどとしても機能します。これは、Varnish モジュール (VMOD とも呼ばれます) を使用して拡張可能な柔軟なVarnish 構成言語 (VCL) を使用して構成されます。 >)、エッジ サイド インクルード (ESL)、Gzip 圧縮と解凍などをサポートします。

この記事では、Apache HTTPD Web サーバーと Varnish Cache 6 を新しい CentOS/RHEL 8 サーバーにインストールする方法 (構成を含む) を学習します。 HTTPD サーバーの前で実行する Varnish。

前提条件:

  • CentOS 8 がインストールされているサーバー
  • システム上で Red Hat サブスクリプションが有効になっている、RHEL 8 がインストールされているサーバー。

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

1. まず、DNF コマンドを使用して、次のようにシステムにインストールされているすべてのソフトウェア パッケージを更新します。

dnf update

2. 次に、次のコマンドを実行して、AppStream リポジトリから Apache HTTP Web サーバーをインストールします。

dnf install httpd

3. インストールが完了したらすぐに httpd サービスを開始し、システムの起動時に自動的に開始されるようにし、systemctl コマンドを使用してサービスのステータスをチェックして、サービスが稼働していることを確認します。

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. デフォルトでは、CentOS/RHEL 8 には完全にロックダウンされたファイアウォールが含まれています (確認するには firewall-cmd –state を実行します)。ユーザーが HTTP 経由で実行される Web サイトやアプリケーションにアクセスできるようにするには、ファイアウォールで HTTP サービスへのアクセスを開き、新しい変更を適用するために firewalld 設定をリロードする必要があります。

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

ステップ 2: CentOS/RHEL 8 への Varnish Cache 6.4 のインストール

5. Apache Web サーバーが実行されているので、次のコマンドを使用してシステムにVarnish Cache をインストールすることができます。

dnf module install varnish

6. インストールが正常に完了したら、システムにインストールされている Varnish のバージョンを確認できます。

varnishd -V

7. 次に、メインの実行可能ファイルが /usr/sbin/varnishd としてインストールされます。また、Varnish 設定ファイルは /etc/varnish ディレクトリに保存されます。ここでは、次のとおりです。

  • /etc/varnish/default.vcl – VCL を使用して書かれたメインのワニス設定ファイルです。
  • /etc/varnish/secret – varnish シークレット ファイルです。

8. ここで、varnish サービスを開始します。ここでは、サーバーの再起動の場合に備えてシステムの起動中にサービスが自動的に開始されるようにし、次のようにステータスをチェックしてサービスが稼働していることを確認します。

systemctl start varnish
systemctl enable varnish
systemctl status varnish

ステップ 3: Varnish Cache と連携するように Apache を構成する

9. 次に、Apache サービスの前で実行されるように Varnish Cache を構成します。デフォルトでは、Apache サーバーはポート 80 でリッスンするように設定されており、これはメイン設定ファイル /etc/httpd/conf/httpd.conf で定義されています。

お気に入りのテキスト エディターを使用して編集するために開きます。

vi /etc/httpd/conf/httpd.conf

Listen パラメータを探します。 Apache サーバーの前で Varnish を実行するには、デフォルトのポート 808080 (または任意の他のポート) に変更する必要があります。次のスクリーンショットに示されています。

このポートは、後で 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>

重要: デフォルトの Apache HTTP サーバー テスト ページが使用されないようにするには、ファイル /etc/httpd/conf.d 内のすべての行をコメント アウトします。 /welcome.confを削除するか、単にファイルを削除します。

rm /etc/httpd/conf.d/welcome.conf 

10. 次に、httpd 構成構文にエラーがないかテストします。問題がなければ、httpd サービスを再起動して新しい変更を適用します。

httpd -t
systemctl restart httpd

Systemd 用の Varnish の構成

11. HTTPD の前に Varnish をデプロイするには、説明したようにデフォルトの HTTP ポート 80 でクライアント要求をリッスンするように Varnish を設定するだけです。下に。

Varnish Cache 6.0 以降では、Varnish サーバーがリッスンするポートsystemdの Varnish サービス ファイルで設定する必要があることに注意してください。まず、編集のために開きます。

systemctl edit --full  varnish

ExecStart 行を探し、-a スイッチ (ワニスがアドレスとポートをリッスンするように指定) の値を :6081 から変更します。次のスクリーンショットに示すように、> を :80 に変更します。

重要なのは、アドレスを指定しない場合、varnishd はサーバー上でアクティブな、使用可能なすべての IPv4 および IPv6 インターフェイスをリッスンすることです。

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

変更をファイルに保存して終了します。

VCL を使用した Varnish バックエンド サーバーの構成

12. ここで、ワニス用語でバックエンドとして知られるオリジンサーバーを設定する必要があります。 HTTP を理解し、Varnish が通信してコンテンツを取得するのはサーバー (この場合は httpd) です。これはメイン設定ファイル /etc/varnish/default.vcl で設定されます。

vi /etc/varnish/default.vcl 

デフォルトと呼ばれるデフォルトのバックエンド設定セクションがあります。 「default 」を server1 (または環境標準を満たす任意の名前) に変更できます。デフォルトでは、バックエンド サーバーがローカルホスト上で実行されていることを前提として、ホスト パラメータはローカルホスト を指します。

次に、スクリーンショットに示すように、ポートを 8080 (Apache 仮想ホスト構成ファイルで定義したポート) に設定します。

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

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

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

ファイルを保存して閉じます。

13. Varnish に関して必要な変更をすべて行った後、systemd マネージャー設定を再ロードして Varnish サービス ファイルの新しい変更を反映し、また再起動します。全体的な変更を適用するには、Varnish サービスを使用します。

systemctl daemon-reload
systemctl restart varnish

14. この時点で、Varnish と Apache はそれぞれポート 808080 でリッスンしているはずです。これは、socketstatistics コマンドを使用して確認できます。

ss -tpln

ステップ 4: Varnish キャッシュと Apache セットアップのテスト

14. Varnish Cache-HTTPD セットアップをテストするには、Web ブラウザを開き、サーバーのIP または FQDN を使用して移動します。次のスクリーンショットに示すように、strong>。

http://10.42.0.144
OR
http://www.tecmin.lan

次に、次のように Web ページがワニス キャッシュ経由で提供されているかどうかを確認します。表示された Web ページを右クリックして HTTP ヘッダーを確認し、検査 を選択して開発者ツールを開き、ネットワーク タブをクリックします。ページをリロードします。次に、次のスクリーンショットに示すように、HTTP ヘッダーを表示するリクエストを選択してこれを確認します。

あるいは、次のcurlコマンドを実行して確認することもできます。

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

便利なワニスキャッシュユーティリティプログラム

15. Varnish Cache ディストリビューションに付属する便利なプログラムをいくつか見て、このガイドを終了しましょう。これらには、以下で説明するように、ワニス キャッシュ管理、詳細なログ レコードの表示、およびワニス パフォーマンス統計の表示のためのユーティリティが含まれています。

ヴァルニシャドム

1 つ目は、実行中のVarnish インスタンスを管理するために使用される varnishadm です。これにより、varnishd へのコマンドライン インターフェイス接続が確立されます。 varnishd の起動と停止、構成パラメータの変更、VCL のリロード、バックエンドの一覧表示などにより、実行中の Varnish インスタンスに影響を与える可能性があります。

varnishadm
> backend.list

詳細については、マン・ヴァルニシャドムを参照してください。

ワニスログ

次のプログラムはvarnishlog で、リクエスト固有のデータ (つまり、特定のクライアントとリクエストに関する情報) にアクセスするために使用されます。大量の情報が提供されるため、通常はフィルタリングする必要があります。

varnishlog

詳細については、man varnishlog を参照してください。

ワニススタット

また、リクエストの合計数やオブジェクトの数などの全体的な統計にアクセスするために使用されるvarnishstat (varnish 統計) もあります。

varnishstat

詳細については、man varnishstat を参照してください。

ワニストップ

次に、varnishtop というユーティリティがあります。これは、Varnish ログを読み取り、最も一般的に発生するログ エントリの継続的に更新されるリストを表示するユーティリティです。

varnishtop 

詳細についてはマンワニトップをご覧ください。

ワニス主義者

もう 1 つの便利なユーティリティは、varnishhist (varnish 履歴) ユーティリティです。Varnish ログを読み取り、最新の N リクエストの分布を示す継続的に更新されるヒストグラムを表示します。処理。

varnishhist

詳しくは男のワニス主義者を読んでください。

ほら、ありますよ! Varnish Cache をデプロイし、CentOS/RHEL 8 上の Apache HTTP サーバーを使用して提供される Web アプリケーション コンテンツを高速化することができました。

このトピックに関する質問や共有したい考えがある場合は、以下のフィードバック フォームを使用してください。詳細については、Varnish Cache 6.0 のドキュメントを参照してください。

サイトで HTTPS を有効にしたい場合は、CentOS/RHEL 8 で Hitch を使用して Varnish Cache の SSL/TLS を有効にする方法を説明する次の記事を確認してください。