Varnish Cacheは、高負荷の動的Webサイト用に設計された無料のオープンソースの強力なWebアプリケーションアクセラレータです。 Varnish CacheはWebサーバーの背後にあり、Webサイトを約300〜1000倍高速化できます。複数のサーバーを実行している場合は、ロードバランサーとしても使用できます。 Varnish Cacheは、要求されたWebページをメモリにキャッシュし、同じ情報が複数回要求されたときにコンテンツを最初から作成するのを遅らせることなく、要求されたページを提供することで機能します。
このチュートリアルでは、Ubuntu18.04VPSでNginxのプロキシサーバーとしてVarnishCacheを設定する方法を示します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- サーバーに設定されたルートパスワード。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–Varnishキャッシュをインストールする
apt-get install varnish -y
インストールが正常に完了すると、Varnishキャッシュサービスが自動的に開始されます。次のコマンドを使用して、Varnishサービスのステータスを確認できます。
systemctl status varnish
次の出力が得られるはずです:
次のコマンドを使用して、インストールされているワニスのバージョンを確認することもできます。
varnishd -V
次の出力が表示されます。
netstat -ant
次の出力が表示されます。
ステップ3–Nginxのインストールと構成
このセクションでは、Varnishキャッシュサーバーの背後に配置するようにNginxをインストールして構成します。デフォルトでは、Nginxはポート80で実行されるため、ポート8088でリッスンするようにNginxを構成する必要があります。
まず、次のコマンドを使用してNginxWebサーバーをインストールします。
apt-get install nginx -y
Nginx Webサーバーをインストールした後、Nginxのデフォルトの仮想ホスト構成ファイルを編集します。
nano /etc/nginx/sites-available/default
以下に示すように、デフォルトのポートを80から8088に変更します。
server { listen 8088 default_server; listen [::]:8088 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
注:ファイル内のすべてのデフォルトエントリを削除またはコメントアウトしたことを確認し、上記のコンテンツのみが保存されていることを確認してください。これを行わないと、nginxサービスの開始が拒否されます
終了したら、ファイルを保存して閉じます。次に、Nginxサービスを再起動して、構成を適用します。
systemctl restart nginx
ステップ4–Varnishキャッシュを構成する
次に、ポート80を使用するようにVarnishを構成して、Varnishキャッシュサーバーを介してトラフィックをNginxWebサーバーにルーティングできるようにする必要があります。
これを行うには、ファイル/lib/systemd/system/varnish.service:
を編集します。nano /lib/systemd/system/varnish.service
以下に示すように、Varnishのデフォルトポートを6081から80に変更します。
[Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m ExecReload=/usr/share/varnish/varnishreload ProtectSystem=full ProtectHome=true PrivateTmp=true PrivateDevices=true [Install] WantedBy=multi-user.target
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してsystemdデーモンをリロードします。
systemctl daemon-reload
次に、NginxをVarnishのバックエンドサーバーとして構成する必要があります。これを行うには、ファイル/etc/varnish/default.vcl:
を編集します。nano /etc/varnish/default.vcl
以下に示すように、ポートを8080から8088に変更します。
backend default { .host = "127.0.0.1"; .port = "8088"; }
終了したら、ファイルを保存して閉じます。
注 :Nginx Webサーバーが他のホストにインストールされている場合は、127.0.0.1をNginxサーバーのIPアドレスに置き換えます。
最後に、次のコマンドを使用してVarnishキャッシュサーバーを再起動します。
systemctl restart varnish
ステップ5– VarnishCacheServerを確認する
この時点で、VarnishキャッシュはNginxWebサーバーで動作するように構成されています。それをテストする時が来ました。
以下に示すように、curlコマンドを使用してVarnishキャッシュを確認できます。
curl -I your-server-ip
次の出力が得られるはずです:
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Sun, 01 Dec 2019 06:46:18 GMT Content-Type: text/html Last-Modified: Sun, 01 Dec 2019 06:41:28 GMT ETag: W/"5de36098-264" Vary: Accept-Encoding X-Varnish: 32770 3 Age: 17 Via: 1.1 varnish (Varnish/5.2) Accept-Ranges: bytes Connection: keep-alive
上記の出力は、VarnishCacheでNginxサーバーを使用していることを明確に示しています。
次のコマンドを使用して、Varnishのキャッシュ統計を確認することもできます。
varnishstat
次の画面が表示されます。
次のコマンドを使用して、ワニスのログエントリのランキングを確認することもできます。
varnishtop
出力:
Varnishキャッシュに問題がある場合は、次のコマンドを使用してVarnishログを確認できます。
tail -f varnishncsa.log
結論
おめでとう!これで、Ubuntu18.04VPSにNginxを使用してVarnishCacheサーバーが正常にインストールおよび構成されました。ワニスのドキュメントを参照して、必要に応じて構成を最適化できます。