GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS8にApache/Nginx用のVarnishCache6をインストールします

Varnish Cacheは、オープンソースソフトウェアとして利用可能なWebアプリケーションを高速化するために使用される強力なリバースHTTPプロキシです。ワニスは静的コンテンツと動的コンテンツの両方をキャッシュします。 Webサーバーのバックエンドに到達する前に、すべての受信リクエストを処理します。 WebブラウザとApacheまたはNginxWebサーバーの間にあります。 Varnishキャッシュは、すべての着信ページ要求をメモリに保存するため、Webサーバーが同じWebページを何度も作成する必要はありません。

この投稿では、CentOS8にApacheとNginxを使用してVarnishキャッシュをインストールする方法を紹介します。

前提条件
  • CentOS8を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
はじめに

開始する前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを実行して更新できます:

dnf update -y

すべてのパッケージが更新されたら、次のステップに進むことができます。

ワニスをインストール

デフォルトでは、VarnishパッケージはCentOS8のデフォルトリポジトリに含まれています。次のコマンドを実行してインストールできます:

dnf install varnish -y

Varnishをインストールした後、Varnishのデフォルト構成ファイルを編集し、NginxまたはApacheWebサーバーでバックアップされたアドレスを定義します。

nano /etc/varnish/default.vcl

次の行を変更します:

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

終了したら、ファイルを保存して閉じます。

ワニスの構成

デフォルトでは、Varnishはポート6081でリッスンします。したがって、ポート80でリッスンするようにVarnishを構成する必要があります。varnish.serviceファイルを編集して構成できます。

nano /lib/systemd/system/varnish.service

次の行を見つけます:

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

次の行に置き換えました:

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

ファイルを保存して閉じてから、systemdデーモンをリロードして変更を適用します。

systemctl daemon-reload

次に、Varnishサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl start varnish
systemctl enable varnish

次のコマンドを使用して、ワニスのステータスを確認することもできます。

systemctl status varnish

次の出力が得られるはずです:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-03-12 04:17:32 EST; 4s ago
  Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 6392 (varnishd)
    Tasks: 217
   Memory: 99.5M
   CGroup: /system.slice/varnish.service
           ??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts
Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

この時点で、Varnishが起動し、ポート80でリッスンしています。次のコマンドで確認できます。

ss -antpl | grep varnishd

次の出力が得られるはずです:

LISTEN    0         10               127.0.0.1:34977            0.0.0.0:*        users:(("varnishd",pid=1532,fd=11))                                            
LISTEN    0         128                0.0.0.0:80               0.0.0.0:*        users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6))                
LISTEN    0         128                   [::]:80                  [::]:*        users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7))                
LISTEN    0         10                   [::1]:34909               [::]:*        users:(("varnishd",pid=1532,fd=10))                                            

この時点で、Varnishがインストールおよび構成されています。これで、次のステップに進むことができます。

Varnishで動作するようにNginxをインストールして構成する

まず、Nginxパッケージをサーバーにインストールする必要があります。次のコマンドでインストールできます:

dnf install nginx -y

インストールしたら、Nginxリスニングポートを80から8080に変更する必要があります。これは、Nginxのデフォルトの構成ファイルを編集することで実行できます。

nano /etc/nginx/nginx.conf

次の行を変更します:

        listen       8080 default_server;
        listen       [::]:8080 default_server;

ファイルを保存して閉じ、次のコマンドを使用して構文エラーがないかNginxを確認します。

nginx -t

次の出力が得られるはずです:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Nginxサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start nginx
systemctl enable nginx

次のコマンドを使用して、Nginxリスニングポートを確認することもできます。

ss -antpl | grep 8080

次の出力が得られるはずです:

LISTEN    0         128                0.0.0.0:8080             0.0.0.0:*        users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8))                        
LISTEN    0         128                   [::]:8080                [::]:*        users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9))                        

この時点で、Varnishキャッシュがインストールされ、ポート80で着信するすべてのリクエストをポート8080でリッスンしているNginxWebサーバーに転送するように構成されています。

次のコマンドを使用して、Varnishキャッシュが機能しているかどうかを確認できます。

curl -I http://localhost

次の出力が得られるはずです:

HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 12 Mar 2021 09:18:32 GMT
Content-Type: text/html
Content-Length: 4057
Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT
ETag: "5d9bab28-fd9"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive

Varnishで動作するようにApacheをインストールして構成します

まず、ApacheWebサーバーパッケージをシステムにインストールする必要があります。次のコマンドでインストールできます:

dnf install httpd -y

Apacheをインストールした後、Apacheのデフォルト設定ファイルを編集し、リスニングポートを80から8080に変更します。

nano /etc/httpd/conf/httpd.conf

次の行を変更します:

Listen 8080

ファイルを保存して閉じてから、Apacheサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl start httpd
systemctl enable httpd

次のコマンドを使用して、Apacheリスニングポートを確認することもできます。

ss -antpl | grep httpd

次の出力が得られるはずです:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))

この時点で、Varnishキャッシュがインストールされ、ポート80で着信するすべてのリクエストをポート8080でリッスンしているApacheWebサーバーに転送するように構成されています。

次のコマンドを使用して、Varnishキャッシュが機能しているかどうかを確認できます。

curl -I http://localhost

次の出力が得られるはずです:

Date: Fri, 12 Mar 2021 09:21:14 GMT
Server: Apache/2.4.37 (centos)
Content-Location: index.html.zh-CN
Vary: negotiate,accept-language
TCN: choice
Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT
ETag: "fa6-58b405e7d6fc0;5bd5365602e05"
Accept-Ranges: bytes
Content-Length: 4006
Content-Type: text/html; charset=UTF-8
Content-Language: zh-cn
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Connection: keep-alive
ワニスコマンドラインの操作

ワニスには、ワニスの監視と制御に役立つ便利なユーティリティがいくつか付属しています。

varnishadmは、構成されたバックエンドを一覧表示するために使用されるコマンドラインユーティリティです。

varnishadm

次の出力が表示されます。

200        
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7

Type 'help' for command list.
Type 'quit' to close CLI session.

次に、次のコマンドを実行して、すべてのバックエンドを一覧表示します。

varnish> backend.list

次の出力が表示されます。

200        
Backend name                   Admin      Probe                Last updated
boot.default                   probe      Healthy (no probe)   Sat, 13 Mar 2021 03:00:02 GMT

varnishlog

varnishlogユーティリティは、すべてのユーザーリクエストのログを表示するために使用されます。

varnishlog

次の出力が得られるはずです:

*   << BeReq    >> 6         
-   Begin          bereq 5 fetch
-   VCL_use        boot
-   Timestamp      Start: 1615604631.507187 0.000000 0.000000
-   BereqMethod    GET
-   BereqURL       /
-   BereqProtocol  HTTP/1.1
-   BereqHeader    Host: 69.87.218.214
-   BereqHeader    Upgrade-Insecure-Requests: 1
-   BereqHeader    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
-   BereqHeader    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
-   BereqHeader    Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
-   BereqHeader    X-Forwarded-For: 106.213.193.241
-   BereqHeader    Accept-Encoding: gzip
-   BereqHeader    X-Varnish: 6
-   VCL_call       BACKEND_FETCH
-   VCL_return     fetch
-   BackendOpen    31 boot.default 127.0.0.1 8080 127.0.0.1 58860
-   BackendStart   127.0.0.1 8080
-   Timestamp      Bereq: 1615604631.507458 0.000270 0.000270
-   Timestamp      Beresp: 1615604631.507844 0.000657 0.000386
-   BerespProtocol HTTP/1.1
-   BerespStatus   200
-   BerespReason   OK
-   BerespHeader   Server: nginx/1.14.1
-   BerespHeader   Date: Sat, 13 Mar 2021 03:03:51 GMT
-   BerespHeader   Content-Type: text/html
-   BerespHeader   Content-Length: 4057
-   BerespHeader   Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT

varnishstat

varnishstatコマンドは、メモリ内の統計、ストレージ、作成されたスレッド、および削除されたオブジェクトに関する情報を提供します。

varnishstat

次の画面が表示されます。

varnishtop

varnishtopコマンドは、varnished共有メモリログを読み取り、最も一般的に発生するログエントリの継続的に更新されるリストを表示します。

varnishtop

次の画面が表示されます。

varnishhist

Varnishhistは、ニスログを解析し、処理によって最後のn個のリクエストを出力します。

varnishhist

次の画面が表示されます。

結論

上記のガイドでは、ApacheおよびNginxWebサーバーを使用してVarnishキャッシュをインストールおよび構成する方法を学習しました。これで、本番環境にVarnishキャッシュを実装し、Webサイトのパフォーマンスを高速化できます。ご不明な点がございましたら、お気軽にお問い合わせください。


Cent OS
  1. CentOS8でNginxを使用してVarnishCache6をインストールおよびセットアップする方法

  2. CentOSにVarnishCacheをインストールする方法

  3. CentOS8にVarnishCacheをインストールする方法

  1. CentOS7用のApacheにSSL証明書をインストールする方法

  2. CentOS8にApacheCassandraをインストールする方法

  3. CentOS7にVarnishCache4をインストールする方法

  1. CentOS7にNginxをインストールする方法

  2. CentOS7にApacheを使用してVarnishCacheをインストールする方法

  3. Debian 9 /Ubuntu16.04にApache用のVarnishCache5.1をインストールします