Lab 1 - GUI で Caching を設定する

このラボのゴールは、v3.22.0 から追加された機能 “Caching” の設定と動作の確認です。 GUI/APIを使って設定することが可能です。

Important

想定時間: 10分

Note

このラボの手順はラボを実施する方がWindows jumphost – jumphost-1 から操作する手順を示しています。 接続方法についてはこちらを参照ください。 F5 Labs - Index

NGINX Plus のキャッシュに関するデフォルトの挙動について

NGINX Plus がキャッシュサーバとして動作する場合、以下がデフォルトの挙動となります。

このラボではすでに利用した Trading Application を対象に Caching の設定を行います。
このアプリケーションサーバの応答はコンテンツをキャッシュするよう保持時間の指定はありませんので、NGINX にてレスポンスをキャッシュするよう設定します。
また、アプリケーションサーバの応答パケットに Set-Cookie が含まれますが、本ラボでは動作確認の目的からこちらのヘッダを含む場合にも、コンテンツキャッシュの対象とするよう設定します。
../../_images/M5L1CacheNGINXDefault.png

NGINX Plus にキャッシュを保存するディレクトリを作成する

  1. “nginxplus-3” インスタンスにログインしてください。”PuTTY” を開き、保存済みのホストより nginxplus-3 を選択し、Open をクリックしてください

    ../../_images/M5L1Putty.png

    Important

    もし、Puttyがサーバのホスト鍵に関する警告を示した場合、接続のため Yes をクリックしてください これは、ラボ環境の各ホストでユニークなhost keyを生成するため生じるものです

  2. キャッシュで利用するディレクトリを作成してください

    $ mkdir -p /tmp/cache/store1
    

App Componentを開く

  1. Chromeを開く

  2. ブックマークよりNGINX Controller のGUIにアクセス

    ../../_images/ControllerBookmark4.png
  3. NGINX Controller のadmin accountである、Peter Parker でログインしてください

    Username Password
    peter@acmefinancial.net Peter123!@#
    ../../_images/ControllerLogin-Peter3.png
  4. Services を開いてください

    ../../_images/Tile-Services3.png
  5. “Apps” を選択してください

    ../../_images/Services-Apps3.png
  6. “Trading Application (CAS)” app を開いてください

    ../../_images/TradingMainCASApp1.png
  7. “Trading Main Component” を選択し、設定を変更してください

    ../../_images/TradingMainCASComponent1.png

ADC に Caching を設定する

  1. request_uri メニューを開き、”Enable Caching” を有効にしてください。表示された画面にパラメータを入力します。

    ../../_images/M5L1cache.png
  2. 以下の通り項目を入力してください

    • 設定追加画面
    ../../_images/M5L1cache2.png
  3. そのまま画面を下にスクロールし、DISK STOREの内容を以下の通り項目を入力してください

    Field Value
    Path /tmp/cache/store1
    Max Size 10m
    Min Free 10k
    In Memory Store Size 5m
    Is Default TRUE
    • 設定追加画面
    ../../_images/M5L1cache3.png
  4. 左のメニューから Programmability を開きます。 Response Header Modification に以下の通り追加します

    Field Value
    Action ADD
    Header Name X-Cache-Status
    Header Value $upstream_cache_status
    • 設定追加画面
    ../../_images/M5L1cache4.png
  5. 左のメニューから Snippets を開きます。 URL Snippets に以下の通り追加します

    Field Value
    URI Snippet URI Snippet
    proxy_cache_valid any 1m;
    proxy_ignore_headers Set-Cookie;
    Applicable URIs /
    • 設定追加画面
    ../../_images/M5L1cache5.png
  6. 画面右上の Submit をクリックしてください。

    ../../_images/M5L1cache6.png
  7. 参考情報です。設定が完了すると以下のようにフォルダが生成されます。 nginxplus-4 にて確認してください

    $ sudo ls -l /tmp/cache/store1/*
    /tmp/cache/store1/app_centric_retail-development|trading|main|:
    total 0
    

動作を確認する

  1. Chromeブラウザを開き、 Secret Tab (New Incognito Window) を開いてください。

    ../../_images/M5L1chrome.png
  2. ブラウザ上で右クリックメニューを開き 開発者モード(Inspect) を開き、 Network タブに移動してください。

    ../../_images/M5L1chrome2.png ../../_images/M5L1chrome3.png
  3. キャッシュを生成するため、 http://trading.acmefinancial.net/ へアクセスしてください。
    キャッシュのステータスを Response Header の情報から確認します。
    section-1-bg.jpg を選択し、 Response HeadersX-Cache-Status の内容を確認してください
    ../../_images/M5L1cacherequest1.png
  4. 一旦 Secret Tab を閉じ、上記手順を参考に再度 Secret Tabhttp://trading.acmefinancial.net/ へアクセスしてください。
    section-1-bg.jpg を選択し、 Response HeadersX-Cache-Status の内容を確認してください
    ../../_images/M5L1cacherequest2.png
先程 MISS となっていたステータスが、 HIT となっています。
これは MISS:キャッシュが存在しない状態 であったため、NGINXが設定に従ってキャッシュファイルを生成し、その後のアクセスで HIT:正しく該当するキャッシュを応答した という状態を示します。

Note

このラボではキャッシュ時間を 1分 と短く設定しています。
もし、ブラウザでの操作やその他動作確認でキャッシュ時間を長く設定したい場合には、 proxy_cache_valid の時間を適宜変更してください