本日は、OpenResty Edge で静的リソースを使用する方法をご紹介いたします。OpenResty Edge で静的リソースを提供する際、back-to-source は不要です。back-to-source はパフォーマンスが高く、より信頼性がありますが、必須ではありません。

Embeded image

静的リソースのアップロード

OpenResty Edge の Admin Web コンソールにアクセスしましょう。これは当社のコンソールのサンプルデプロイメントです。各ユーザーは独自のローカルデプロイメントを持っています。

スクリーンショット

まず、静的リソースを OpenResty Edge にアップロードします。

スクリーンショット

グローバル静的ファイルページに移動します。

スクリーンショット

ディレクトリを作成します。

スクリーンショット

「test」という名前を付けます。

Screenshot

作成をクリックします。

スクリーンショット

作成したディレクトリがリストに表示されています。

スクリーンショット

そのディレクトリをクリックして入ります。

スクリーンショット

ここでファイルをアップロードします。

スクリーンショット

「bird.jpg」ファイルを選択します。

スクリーンショット

スクリーンショット

このファイルを保存します。

Screenshot

サブディレクトリを作成します。

スクリーンショット

「images」という名前を付けます。

スクリーンショット

作成をクリックします。

スクリーンショット

サブディレクトリに入ります。

スクリーンショット

別のファイルをアップロードします。

スクリーンショット

「cat.jpg」ファイルを選択します。

Screenshot

Screenshot

このファイルを保存します。

スクリーンショット

静的リソースを使用するページルールの作成

ファイルがアップロードされたので、次にそれらを使用してみましょう。

スクリーンショット

以前のサンプルアプリケーション、test-edge.com を引き続き使用できます。

スクリーンショット

そのアプリケーションに入ります。

スクリーンショット

ページルールページに移動します。

スクリーンショット

ここには、以前のビデオチュートリアルで作成したページルールがあります。

Screenshot

ここで、ファイルを直接返す新しいページルールを作成します。

スクリーンショット

URI が「images/bird.jpg」であるかどうかをチェックするルール条件を有効にします。

スクリーンショット

演算子として「String=」を選択します。

スクリーンショット

スクリーンショット

この静的ファイルに一致させるために「/images/bird.jpg」という値を入力します。

スクリーンショット

「Content」スイッチをオンにします。

スクリーンショット

先ほどアップロードしたファイルの 1 つを選択します。

Screenshot

Screenshot

そのディレクトリを展開します。

スクリーンショット

「bird.jpg」画像を選択します。

スクリーンショット

既存のプロキシページルールの前にこのページルールを挿入することを選択します。

スクリーンショット

このルールを作成するボタンをクリックします。

スクリーンショット

いつものように、この新しい変更をプッシュするためにリリースする必要があります。

スクリーンショット

このボタンをクリックします。

Screenshot

リリースします!

Screenshot

新しいバージョンがすべてのゲートウェイサーバーに同期されました。

スクリーンショット

テスト

次に、URI が “images/bird.jpg” の HTTP リクエストを送信します。

スクリーンショット

期待通り、鳥の画像が返されたことが確認できます。 ファイルの返却を実演した後、次にディレクトリについて説明します。

ページルールページに移動します。

スクリーンショット

ページルールを編集します。

スクリーンショット

演算子として “プレフィックス一致” を選択します。

Screenshot

Screenshot

「/images」という値を入力します。これはこのパスの静的リソースのみにマッチすることを意味します。

スクリーンショット

スクリーンショット

先ほど作成したディレクトリを選択します。

スクリーンショット

「URI プレフィックスを無視」オプションを使用すると、リクエストの URL と実際のリソースの URI が異なることを許可します。この機能については後ほど実演します。

スクリーンショット

このルールを保存します。

スクリーンショット

いつものように、この新しい変更をプッシュするためにリリースする必要があります。

スクリーンショット

このボタンをクリックします。

Screenshot

リリースします。

Screenshot

新しいバージョンがすべてのゲートウェイサーバーに同期されました。

スクリーンショット

URI が「images/cat.jpg」のリクエストを送信します。

スクリーンショット

このリクエストは「images」サブディレクトリにある猫の画像を返します。

「images/bird.jpg」をリクエストするとどうなるでしょうか?

Screenshot

このリクエストはエラーページを返すことがわかります。これは「images」サブディレクトリに「bird.jpg」ファイルが存在しないためです。 次に、URI のプレフィックスを無視する方法を実演します。

ページルールページに移動します。

スクリーンショット

先ほどのページルールを編集します。

スクリーンショット

引き続き「test」ディレクトリを使用します。

スクリーンショット

ここで「String」を無視するように選択します。

スクリーンショット

「/images/」と入力します。

Screenshot

このルールを保存します。

スクリーンショット

いつものように、この新しい変更をプッシュするためにリリースする必要があります。

スクリーンショット

このボタンをクリックします。

スクリーンショット

リリースします!

スクリーンショット

新しいバージョンがすべてのゲートウェイサーバーに同期されました。

スクリーンショット

「/images」プレフィックス付きのリクエストを送信します。

Screenshot

「/images」プレフィックス付きのリクエストを送信します。

スクリーンショット

このリクエストは鳥の画像を返しました。

次に、「images」サブディレクトリ内の画像をリクエストします。

スクリーンショット

リクエストは猫の画像を返しました。

次に、「/no」プレフィックス付きの存在しないリソースのリクエストを送信します。

スクリーンショット

エラーページが返されたことが確認できます。

Screenshot

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 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

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