OpenResty Edge におけるリアルタイムの HTTP キャッシュパージ
本日は、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
レスポンスヘッダーに注目してください。
次に、キャッシュパージタスクを送信します。
素晴らしい!キャッシュがネットワーク全体でパージされました。
他のアプリケーションレベルの設定とは異なり、キャッシュパージタスクはゲートウェイネットワーク全体で即時に同期されます。新しいアプリケーション設定のデプロイは必要ありません。
キャッシュパージにはサーバーのリロード、再起動、またはバイナリアップグレードは必要ありません。
キャッシュステータスの確認
ターミナルでキャッシュステータスを再度確認しましょう。
curl -I https://openresty.org/en/faq.html
请返された Cache-Status: EXPIRED
レスポンスヘッダーに注目してください。現在は確かにキャッシュミスです。
2回目のリクエストは再びキャッシュヒットするはずです。
Cache-Status: HIT
レスポンスヘッダーに注目してください。
URL プレフィックスによるキャッシュのパージ
今度は URL プレフィックスでパージを試してみましょう。
/en/
の位置にあるすべてのものをパージしたいと思います。
新しいタスクを送信します。
これでゲートウェイネットワーク全体に同期されました。
FAQ ページにテストリクエストを送信します。
curl -I https://openresty.org/en/faq.html
予想通り、キャッシュミスになりました。
URI プレフィックス /en/
以下の別のページ、アクティビティページをテストします。
curl -I https://openresty.org/en/events.html
これも予想通りキャッシュミスです。
または /en/
ページ自体も
curl -I https://openresty.org/en/
同様にキャッシュミスです。
他のタイプのリソースのキャッシュもパージできます。例えば、すべての 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(マイクロサービスおよび分散トラフィックに最適化された多機能
翻訳
英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!