ウェブサイト検索

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


Varnish Cache (一般に Varnish と呼ばれます) は、最新のアーキテクチャと柔軟なオープンソースの強力で高速なリバース プロキシ HTTP アクセラレータです。設定言語。リバース プロキシとは、単純に、Nginx などの Web サーバー (オリジン サーバーまたはバックエンド) の前に展開して、クライアントの HTTP リクエストを受信し、それらを処理用のオリジンサーバー。そして、オリジンサーバーからの応答をクライアントに配信します。

VarnishNginxクライアントの間の仲介者として機能しますが、パフォーマンス上の利点がいくつかあります。その主な目的は、キャッシュ エンジンとして機能することにより、アプリケーションの読み込みを高速化することです。クライアントからリクエストを受信し、それらをバックエンドに一度転送して、リクエストされたコンテンツをキャッシュします (ファイルとファイルのフラグメントをメモリに保存します)。その後、まったく同様のコンテンツに対する今後のすべてのリクエストがキャッシュから提供されます。

これにより、Nginx がストレージ ディスクからファイルを処理するのではなく、Varnish がメモリからコンテンツを提供するため、Web アプリケーションの読み込みが速くなり、Web サーバーの全体的なパフォーマンスが間接的に向上します。

キャッシュ以外にも、Varnish には、HTTP リクエスト ルーター、ロード バランサー、Web アプリケーション ファイアウォールなどを含む他のいくつかのユースケースもあります。

ワニスは、拡張性の高い組み込みのワニス構成言語 (VCL) を使用して構成され、受信リクエストの処理方法に関するポリシーを作成できます。扱った。これを使用して、カスタマイズされたソリューション、ルール、モジュールを構築できます。

この記事では、Nginx Web サーバーとVarnish Cache 6 を新しいCentOS 8 または にインストールする手順を説明します。 RHEL 8サーバー。 RHEL 8 ユーザーは、redhat サブスクリプションを有効にしてください。

Nginx Web サーバーを単独でインストールするのではなく、完全な LEMP スタックをセットアップするには、次のガイドを確認してください。

  1. CentOS 8 に LEMP サーバーをインストールする方法
  2. RHEL 8 に LEMP サーバーをインストールする方法

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

1. CentOS/RHEL 8 には最新バージョンの Nginx Web サーバー ソフトウェアが付属しているため、次の dnf コマンドを実行します。

dnf update
dnf install nginx

2. Nginx をインストールしたら、次の systemctl コマンドを使用して起動、有効化、ステータスの確認を行う必要があります。

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. 少し興味がある場合は、次の ss コマンドを使用して、デフォルトでポート 80 で実行される Nginx TCP ソケットを確認することもできます。

ss -tpln

4. システムでファイアウォールを実行している場合は、Web サーバーへのリクエストを許可するようにファイアウォール ルールを更新してください。

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

ステップ 2: CentOS/RHEL 8 に Varnish Cache 6 をインストールする

5. CentOS/RHEL 8 は、バージョン 6.0 を含む Varnish Cache DNF モジュールをデフォルトで提供します。 LTS (長期サポート)。

モジュールをインストールするには、次のコマンドを実行します。

dnf module install varnish

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

varnishd -V

7. Varnish Cache をインストールすると、メインの実行可能コマンドが /usr/sbin/varnishd にインストールされ、varnish 設定ファイルが に配置されます。 /etc/ワニス/

ファイル /etc/varnish/default.vcl は、VCL を使用して作成されたメインのワニス構成ファイルであり、 /etc/varnish/secret はワニスです。秘密のファイル。

8. 次に、Varnish サービスを開始し、システム起動時の自動開始を有効にして、サービスが稼働していることを確認します。

systemctl start varnish
systemctl enable varnish
systemctl status varnish

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

9. このセクションでは、Nginx の前で実行されるように Varnish Cache を構成する方法を示します。デフォルトでは、Nginx はポート80でリッスンします。通常、すべてのサーバー ブロック (または仮想ホスト) はこのポートでリッスンするように構成されています。

たとえば、メイン設定ファイル (/etc/nginx/nginx.conf) で設定されているデフォルトの nginx サーバー ブロックを見てください。

vi /etc/nginx/nginx.conf

次のスクリーンショットに示すように、サーバー ブロック セクションを探します。

10. Nginx の前で Varnish を実行するには、デフォルトの Nginx ポートを 80 から に変更する必要があります。 >8080 (または任意の他のポート)。

これは、Varnish 経由で提供するサイトまたは Web アプリケーションの今後のすべてのサーバー ブロック設定ファイル (通常は /etc/nginx/conf.d/ の下に作成されます) で行う必要があります。 >。

たとえば、テスト サイト tecmint.lan のサーバー ブロックは /etc/nginx/conf.d/tecmint.lan.conf で、次の構成になっています。

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

重要: 次に示すように、/etc/nginx/nginx.conf ファイル内の設定セクションをコメントアウトして、デフォルトのサーバー ブロックを必ず無効にしてください。次のスクリーンショットで。これにより、サーバー上で他の Web サイト/アプリケーションの実行を開始できるようになります。そうでない場合、Nginx は常にリクエストをデフォルトのサーバー ブロックに送信します。

11. 構成が完了したら、構成ファイルにエラーがないか確認し、Nginx サービスを再起動して最近の変更を適用します。

nginx -t
systemctl restart nginx

12. 次に、クライアントから HTTP リクエストを受信するには、 ポート 80 で実行されるように Varnish を設定する必要があります。バージョン 6.0 以降では、この変更が Varnish 環境ファイル (現在は非推奨) で行われていた以前のバージョンの Varnish Cache とは異なります。 。

Varnish サービス ファイルに必要な変更を加える必要があります。次のコマンドを実行して、編集する適切なサービス ファイルを開きます。

systemctl edit --full  varnish

次の行を見つけて、リッスン アドレスとポートを指定する -a スイッチの値を変更します。次のスクリーンショットに示すように、ポートを80に設定します。

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

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

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

13. 次に、Varnish がコンテンツを取得するためにアクセスするバックエンド サーバーを定義する必要があります。これは、Varnish のメイン構成ファイルで行われます。

vi /etc/varnish/default.vcl 

デフォルトのバックエンド構成セクションを探し、文字列「default 」を server1 (またはオリジンサーバーを表す任意の名前) に変更します。次に、ポートを8080 (またはサーバー ブロックで定義した Nginx リッスン ポート) に設定します。

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

このガイドでは、 同じサーバー上でVarnishNginx を実行します。 Nginx Web サーバーが別のホストで実行されている場合。たとえば、アドレスが 10.42.0.247 の別のサーバーの場合、.host パラメータを次のように設定します。

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

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

14. 次に、Varnish サービス ファイルに最近変更が加えられたため、systemd マネージャー構成を再ロードし、次のように Varnish サービスを再起動して変更を適用する必要があります。

systemctl daemon-reload
systemctl restart varnish

15. 次に、NginxVarnish が設定された TCP ソケットでリッスンしていることを確認します。

ss -tpln

ステップ 4: Nginx ワニス キャッシュ設定のテスト

16. 次に、次のように Web ページがワニス キャッシュ経由で提供されていることを確認します。次のスクリーンショットに示すように、Web ブラウザーを開き、サーバー IP または FDQN を使用して移動します。

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

17. あるいは、示されているように、curl コマンドを使用します。サーバーの IP アドレスまたは Web サイトの FQDN を使用するか、ローカルでテストする場合は 127.0.0.1 または localhost を使用します。

curl -I http:///www.tecmint.lan

便利なワニス キャッシュ管理ユーティリティ

18. この最後のセクションでは、Varnish Cache に同梱されている、varnishd の制御に使用できる便利なユーティリティ プログラムのいくつかについて簡単に説明します。 >、メモリ内のログや全体的な統計などにアクセスします。

ヴァルニシャドム

varnishadm は、実行中の Varnish インスタンスを制御するユーティリティです。 varnishd への CLI 接続を確立します。たとえば、次のスクリーンショットに示すように、これを使用して構成されたバックエンドを一覧表示できます (詳細については、man varnishadm を参照してください)。

varnishadm
varnish> backend.list

ワニスログ

varnishlog ユーティリティは、リクエスト固有のデータへのアクセスを提供します。特定のクライアントとリクエストに関する情報を提供します (詳細についてはman varnishlog を参照してください)。

varnishlog

ワニススタット

varnishstatvarnish 統計 とも呼ばれ、キャッシュのヒットやミス、ストレージに関する情報などのメモリ内統計へのアクセスを提供することで、Varnish の現在のパフォーマンスを一目で確認できます。 、スレッドの作成、オブジェクトの削除 ( 詳細についてはman varnishstat を参照してください)。

varnishstat 

ニストップ

varnishtop ユーティリティは共有メモリ ログを読み取り、最も一般的に発生するログ エントリの継続的に更新されるリストを表示します (詳細については、man varnishtop を参照してください)。

varnishtop 

ワニス主義者

varnishhist(varnish History) ユーティリティは、varnish ログを解析し、処理ごとの最後の n リクエストの分布を示す継続的に更新されるヒストグラムを出力します (詳細についてはマン・ワニス主義者を読んでください)。

varnishhist

それだけです!このガイドでは、Varnish Cache をインストールし、Nginx HTTP サーバーの前で実行して、CentOS/RHEL 8< での Web コンテンツ配信を高速化する方法を説明しました。

このガイドに関するご意見やご質問は、以下のフィードバック フォームを使用して共有できます。詳細については、ワニス キャッシュのドキュメントを参照してください。

Varnish Cache の主な欠点は、HTTPS のネイティブ サポートがないことです。 Web サイト/アプリケーションでHTTPSを有効にするには、サイトを保護するためにワニス キャッシュと連携して動作するようにSSL/TLS終端プロキシを構成する必要があります。次回の記事では、CentOS/RHEL 8 で Hitch を使用して Varnish Cache の HTTPS を有効にする方法を説明します。