本日は、OpenResty Edge の HTTP キャッシュをゲートウェイネットワーク全体でリアルタイムにパージする方法をご紹介いたします。

埋め込み画像

アプリケーション用の新しいキャッシュパージタスクの作成

前回と同様に、OpenResty Edge の Admin Web コンソールにアクセスしましょう。こちらは当社のコンソールのサンプルデプロイメントです。各ユーザーには独自のローカルデプロイメントがあります。

スクリーンショット

今回は実際のアプリケーションである openresty.org ウェブサイトを使用します。

スクリーンショット

このアプリケーションに移動します。

スクリーンショット

このアプリケーションのキャッシュパージページに移動します。

スクリーンショット

既に多くの過去のパージタスクがあることがわかります。

スクリーンショット

新しいパージタスクを作成しましょう。

截图

キャッシュをパージする方法は3つあります。完全な URL パス、

スクリーンショット

URL プレフィックス、

スクリーンショット

または複雑なカスタム条件です。

スクリーンショット

まずは完全な URL モードを試してみましょう。

スクリーンショット

これは openresty.org ウェブサイトの FAQ ページです。ここで http:// または https:// を使用するかどうかは重要ではありません。 これは、キャッシュキーにスキーム文字列を含めていないためです。デフォルトでは、スキーム文字列は含まれません。

キャッシュパージタスクを送信する前に、このウェブページのキャッシュがヒットしていることを確認し、パージの効果をテストできるようにしましょう。

埋め込み画像

ターミナルで、FAQ ウェブページにテストリクエストを送信して、既にキャッシュヒットしていることを確認します。

curl -I https://openresty.org/en/faq.html

そしてもう一度実行します。

返された Cache-Status: HIT レスポンスヘッダーに注目してください。

スクリーンショット 2

次に、キャッシュパージタスクを送信します。

スクリーンショット

素晴らしい!キャッシュがネットワーク全体でパージされました。

スクリーンショット

他のアプリケーションレベルの設定とは異なり、キャッシュパージタスクはゲートウェイネットワーク全体で即時に同期されます。新しいアプリケーション設定のデプロイは必要ありません。

キャッシュパージにはサーバーのリロード、再起動、またはバイナリアップグレードは必要ありません。

埋め込み画像

キャッシュステータスの確認

ターミナルでキャッシュステータスを再度確認しましょう。

curl -I https://openresty.org/en/faq.html

请返された Cache-Status: EXPIRED レスポンスヘッダーに注目してください。現在は確かにキャッシュミスです。

スクリーンショット 1

2回目のリクエストは再びキャッシュヒットするはずです。

Cache-Status: HIT レスポンスヘッダーに注目してください。

スクリーンショット 3

URL プレフィックスによるキャッシュのパージ

今度は URL プレフィックスでパージを試してみましょう。

スクリーンショット

/en/ の位置にあるすべてのものをパージしたいと思います。

スクリーンショット

新しいタスクを送信します。

スクリーンショット

これでゲートウェイネットワーク全体に同期されました。

スクリーンショット

FAQ ページにテストリクエストを送信します。

curl -I https://openresty.org/en/faq.html

予想通り、キャッシュミスになりました。

スクリーンショット 1

URI プレフィックス /en/ 以下の別のページ、アクティビティページをテストします。

curl -I https://openresty.org/en/events.html

これも予想通りキャッシュミスです。

截图 3

または /en/ ページ自体も

curl -I https://openresty.org/en/

同様にキャッシュミスです。

截图 5

他のタイプのリソースのキャッシュもパージできます。例えば、すべての CSS ファイル、すべての画像など、これらのファイルが事前定義された URL の場所に配置されている限り可能です。

スクリーンショット

この新しいパージタスクを今すぐ送信する必要はありません。

スクリーンショット

カスタムキャッシュパージ条件の設定

より複雑な条件を定義する必要がある場合があります。

截图

例えば、URI の場所に関係なく、URI サフィックスが .css のすべてのリソースのキャッシュをパージすることができます。

サフィックス一致演算子を選択します。

スクリーンショット

スクリーンショット

次に、サフィックス文字列値を入力します。

スクリーンショット

現在のパージタスクにさらに条件を追加することができます。これらの条件はAND関係にあり、同時に満たす必要があります。

スクリーンショット

例えば、URI パラメータ、リクエストヘッダー、クッキーなどをチェックする条件を追加できます。

スクリーンショット

また、リテラル文字列パターンの代わりにワイルドカードや正規表現パターンを使用することもできます。

截图

または、より多くの値のパターンを追加することもできます。これらの値はOR関係にあり、そのうちの 1 つを満たせば十分です。

スクリーンショット

スクリーンショット

これらの条件は自由に試すことができます。 ご覧のように、ページルールの条件と同様に非常に柔軟です。

以上が本日ご紹介する内容です。

OpenResty Edge について

OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!