サーバークラウドネットワーク

NGINX Plus で FastCGI キャッシュを試してみた!

お客様より NGINX Plus で FastCGI キャッシュ機能は使えるか?というお問い合わせをいただきました。
FastCGI キャッシュに対応していることは知っていましたが、せっかくなので動作確認をしてみたいと思います。

はじめに

ブログを読んでいただきありがとうございます! 東京エレクトロンデバイスのJo Nishikawaです。

今回はお客様からNGINX Plusで FastCGI キャッシュ機能でWebページのキャッシュができるかとご質問をいただいので調査と動作確認をしてみました。

そもそもキャッシュとは

キャッシュとはウェブページを一時的に保存することです。

例えば、NGINX Plusがキャッシュをしてくれることによって、ユーザーがWebページを見ようとした際に実際のWebサーバーを見に行くのではなくNGINX Plusがキャッシュとして保存していたWebページを利用するので、すぐに表示がされます。

Webページの表示速度の向上や通信量の節約、サーバーへの負荷軽減などがメリットとなります、

NGINX Plus におけるキャッシュの種類

NGINX Plus では FastCGI キャッシュとプロキシキャッシュの2種類の機能があります。

  • FastCGI キャッシュ
    FastCGI レスポンスをそのままNGINXにキャッシュする機能が
    FastCGI キャッシュとなります。
    今回はこちらの動作確認をしていきます。

  • プロキシキャッシュ
    NGINXをリバースプロキとして配置し、キャッシュする機能です。
    オリジンサーバーの前段にNGINXを配置する構成になります。

検証環境

準備したものは以下です。

  • AWS EC2 Ubuntu 22.04

上記のサーバーに NGINX Plus と WordPressをインストールしました。

キャッシュの確認で利用するWebページは以下になります。

検証

NGINX PlusでFastCGIを設定する方法
今回は、1台のUbuntu 20.04サーバーにNGINX PlusとWordPressを導入し、FastCGIを有効にする手順を紹介します。対象のURLは以下です。
==========-
STEP1 : NGINX Plus をサーバーにインストール
こちらの手順は割愛します。

STEP2 : WordPress、PHP、MariaDB をサーバーにインストール
こちらの手順は割愛します。

STEP3 : NGINX Plus の設定ファイルを編集
以下の様に設定を編集しました。

$ vi /etc/nginx/conf.d
server {
    listen 80;
    server_name test.nishikawa.dev.xxxxx.net; # サーバー名を変更

 [![](https://cn.teldevice.co.jp/_cms/wp-content/uploads/2024/06/2a403722aea40c34e0b3f197a130fcce.png)](https://cn.teldevice.co.jp/_cms/wp-content/uploads/2024/06/2a403722aea40c34e0b3f197a130fcce.png)   root /var/www/html/wordpress; # ルートを変更
    index index.php index.html index.htm;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

STEP4:NGINX Plus のプロセスを再起動して設定を反映

$ sudo systemctl restart nginx

STEP5: キャッシュさせたいWebページへ初回アクセス

Chromeの開発者ツールのPerfomanceにてリクエストからレスポンスまでの所要時間を確認したところ、5400msec程度となりました。

STEP6: キャッシュさせたいWebページへ2回目のアクセス

こちらもChromeの開発者ツールのPerfomanceにてリクエストからレスポンスまでの所要時間を確認したところ、670msec程度となりました。
キャッシュされたおかげでWebページの表示速度が随分と早くなりました。

まとめ

以上が、NGINX Plus にて WebページFastCGI機能にて高速かした検証結果となります。
詳細な設定やカスタマイズは、プロジェクトや要件に応じて行ってもらえればと思います。

私自身、Proxy キャッシュのイメージが強く同一サーバー内で NGINX Plus と Webサーバーを動かすパターンについて知れてよかったです。

キャッシュさせる際にヘッダーに値を挿入させたりもできるそうなのでまた勉強してみたいと思います。

また、今回紹介した機能は NGINX OSS でも NGINX Plus でも利用できる機能となります。

今回はここまでとなります、読んでいただきありがとうございました。

この記事に関連する製品・サービス

この記事に関連する記事