OpenResty Edge の静的ファイル配信:オリジンへの back-to-source なしでゲートウェイから直接提供
OpenResty Edge では、静的ファイルをゲートウェイのグローバル静的ファイルストレージに直接保存し、ページルールを使ってエッジから直接返すことができます。オリジンへの back-to-source が不要になるため、パフォーマンスが高く、より信頼性があります。単一のファイルを完全な URI で一致させたり、URI プレフィックスでディレクトリ全体を配信したり、URI プレフィックスを無視してリクエストからプレフィックスを取り除いたりできます。本チュートリアルでは、ファイルのアップロードと各一致モードの設定手順を順に解説します。
OpenResty Edge への静的ファイルのアップロード
OpenResty Edge の Admin Web コンソールにアクセスしましょう。これはコンソールのサンプルデプロイメントです。各ユーザーは独自のデプロイメントを持っています。
まず、静的ファイルを OpenResty Edge にアップロードします。
グローバル静的ファイルページに移動します。
ディレクトリを作成します。
「test」という名前を付けます。
作成をクリックします。
作成したディレクトリがリストに表示されています。
そのディレクトリをクリックして入ります。
ここでファイルをアップロードします。
「bird.jpg」ファイルを選択します。
このファイルを保存します。
サブディレクトリを作成します。
「images」という名前を付けます。
作成をクリックします。
サブディレクトリに入ります。
別のファイルをアップロードします。
「cat.jpg」ファイルを選択します。
このファイルを保存します。
ページルールによる静的ファイルの配信
ファイルがアップロードされたので、次にそれらを使用してみましょう。
以前のサンプルアプリケーション、test-edge.com を引き続き使用できます。
そのアプリケーションに入ります。
ページルールページに移動します。
ここには、以前のビデオチュートリアルで作成したページルールがあります。
ここで、ファイルを直接返す新しいページルールを作成します。
URI が「/images/bird.jpg」であるかどうかをチェックするルール条件を有効にします。
演算子として「String=」を選択します。
この静的ファイルに一致させるために「/images/bird.jpg」という値を入力します。
「Content」スイッチをオンにします。
先ほどアップロードしたファイルの 1 つを選択します。
そのディレクトリを展開します。
「bird.jpg」画像を選択します。
既存のプロキシページルールの前にこのページルールを挿入することを選択します。
このルールを作成するボタンをクリックします。
いつものように、この新しい変更をプッシュするためにリリースする必要があります。
このボタンをクリックします。
リリースします!
新しいバージョンがすべてのゲートウェイサーバーに同期されました。
静的ファイルページルールのテスト
次に、URI が “images/bird.jpg” の HTTP リクエストを送信します。
期待通り、鳥の画像が返されたことが確認できます。
プレフィックスでディレクトリ全体を配信
ファイルの返却を実演した後、次にディレクトリについて説明します。
ページルールページに移動します。
ページルールを編集します。
演算子として “プレフィックス一致” を選択します。
「/images」という値を入力します。これはこのパスの静的リソースのみにマッチすることを意味します。
先ほど作成したディレクトリを選択します。
「URI プレフィックスを無視」オプションを使用すると、リクエストの URL と実際のリソースの URI が異なることを許可します。この機能については後ほど実演します。
このルールを保存します。
いつものように、この新しい変更をプッシュするためにリリースする必要があります。
このボタンをクリックします。
リリースします。
新しいバージョンがすべてのゲートウェイサーバーに同期されました。
URI が「images/cat.jpg」のリクエストを送信します。
このリクエストは「images」サブディレクトリにある猫の画像を返します。
「images/bird.jpg」をリクエストするとどうなるでしょうか?
このリクエストはエラーページを返すことがわかります。これは「images」サブディレクトリに「bird.jpg」ファイルが存在しないためです。
URI プレフィックスを無視する
次に、URI のプレフィックスを無視する方法を実演します。
ページルールページに移動します。
先ほどのページルールを編集します。
引き続き「test」ディレクトリを使用します。
ここで「String」を無視するように選択します。
「/images/」と入力します。
このルールを保存します。
いつものように、この新しい変更をプッシュするためにリリースする必要があります。
このボタンをクリックします。
リリースします!
新しいバージョンがすべてのゲートウェイサーバーに同期されました。
「/images」プレフィックス付きのリクエストを送信します。
このリクエストは鳥の画像を返しました。
次に、「images」サブディレクトリ内の画像をリクエストします。
リクエストは猫の画像を返しました。
次に、「/no」プレフィックス付きの存在しないリソースのリクエストを送信します。
エラーページが返されたことが確認できます。
これで静的ファイルをゲートウェイ上に直接保存・配信できました。オリジンから取得した動的レスポンスをキャッシュしたい場合は、OpenResty Edge のキャッシュルールをご覧ください。リソースを自前のプライベート CDN としてグローバルに配信したい場合は、OpenResty Edge でプライベート CDN を構築するをご覧ください。
よくある質問
OpenResty Edge は back-to-source なしで静的ファイルを配信できますか?
はい。ファイルをグローバル静的ファイルストレージにアップロードすると、ページルールがゲートウェイから直接それを返すため、リクエストは back-to-source を必要としません。これによりパフォーマンスが高く、より信頼性があります。
単一のファイルとディレクトリ全体は、それぞれどう配信しますか?
ページルールで文字列完全一致の演算子を使い、1 つの完全な URI(例:「/images/bird.jpg」)に一致させます。あるいは「プレフィックス一致」演算子を使い、URI プレフィックス(例:「/images」)でアップロード済みのディレクトリ全体を配信します。
「URI プレフィックスを無視」は何をしますか?
ファイルを検索する前に、リクエストからプレフィックス(例:「/images/」)を取り除くことで、リクエストの URL と実際のリソースの URI が異なることを許可します。
新しい静的ファイルやページルールを本番へ反映するには?
新しいリリースを行います。そのバージョンがすべてのゲートウェイサーバーに同期されます。
OpenResty Edge とは
OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けの当社の多機能ゲートウェイソフトウェアです。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、同時接続数の多い高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。
このチュートリアルがお役に立ちましたら、本ブログおよび弊社の YouTube チャンネル をぜひご購読ください。
著者について
章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。
章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しています。同氏は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo! など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っています。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、同氏は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立しました。同社の主力製品である OpenResty XRay(動的トレーシング技術を利用した非侵入型のプロファイリングおよびトラブルシューティングツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ています。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJIT、GDB、SystemTap、LLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しています。
翻訳
英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!

























































































