トップ OSS紹介 OpenResty

OpenResty

サポート対象

NRIのOpenstandiaが提供するOpenResty最新情報

OpenResty情報

OpenRestyとは

OpenResty(オープンレスティ)は、NginxコアとLuaJIT(スクリプト言語LuaのJust in Time Compiler)、多くの高品質なLuaライブラリやNginxモジュールが統合されたオープンソースの本格的なWebプラットフォームです。

OpenRestyを使用することで、スケーラブルなWebアプリケーション、Webサービス、動的なWebゲートウェイが簡単に構築できるようになります。人気のAPIゲートウェイであるKongでもOpenRestyが使用されています。

OpenResty は2007年10月にヤフーチャイナで働いていたZhang, Yichun氏によって開発が始められました。開発当初はPerlで書かれていましたが、現在はC言語で開発されています。

2011年まではヤフーチャイナとTaobao社、2016年まではCloudflare社、以降はOpenResty Software Foundation と OpenResty Inc.によってサポートされています。

主な特徴

OpenRestyには以下のようなコンポーネントが同梱されています。すべてのコンポーネントは必要に応じて有効または無効にできます

LuaJIT

プログラミング言語Luaのジャストインタイム コンパイラーです。

ArrayVarNginxModule

nginxコンフィグファイルで、配列型変数を使用可能にします。

AuthRequestNginxModule

認証リクエストモジュールです。

CoolkitNginxModule

nginx用の便利なモジュールセットです。

DrizzleNginxModule

libdrizzleによりMySQL、Drizzleデータベースサーバーと通信を行うnginxアップストリームモジュールです。

EchoNginxModule

ストリーミング入出力、並列/逐次サブリクエスト、タイマー、スリープ、などのメタデータアクセスのためにNginx内部APIをラップします。

EncryptedSessionNginxModule

改ざん防止用MAC付きの AES-256 に基づき Nginx 変数の暗号化、復号化のサポートを提供します。

FormInputNginxModule

application/x-www-form-urlencoded でエンコードされたHTTP POST、PUTリクエスト本文を解析するNginxモジュールです。

HeadersMoreNginxModule

指定したレスポンスヘッダー、リクエストヘッダーを、追加、設定、またはクリアできるようにします。

IconvNginxModule

libiconvを使用して異なるエンコーディングの文字に変換するNginxモジュールです。

StandardLuaInterpreter

標準のLuaインタープリターで、デフォルトで有効になっています。LuaJITが有効な場合は無効になります。

MemcNginxModule

標準のmemcachedモジュールを拡張します。

Nginx

高性能なオープンソースのHTTP、リバースプロキシ、IMAP/POP3プロキシサーバーです。

NginxDevelKit

Nginxのコア機能を拡張するように設計されたモジュールです。

LuaCjsonLibrary

Luaで高速なJSON解析とエンコードが出来るようにするLua Cモジュールです。

LuaNginxModule

LuaインタープリターまたはLuaJIT 2をnginxコアに組み込みます。

LuaRdsParserLibrary

Drizzle NginxやPostgres Nginxモジュールによって生成されたResty-DBD-Streamフォーマットのデータをパースすることができます。

LuaRedisParserLibrary

Lua用のRedisリプライパーサーおよびリクエストコンストラクターライブラリです。

LuaRestyCoreLibrary

Lua NginxによるLua APIをLuaJIT FFIで再実装します。

LuaRestyDNSLibrary

Lua Nginx用のノンブロッキングDNSリゾルバです。

LuaRestyLockLibrary

シンプルなノンブロッキングミューテックスロックAPIを実装します。

LuaRestyLrucacheLibrary

OpenResty向けLua 用 LRUキャッシュを実装します。

LuaRestyMemcachedLibrary

Lua Nginx向けLua Memcachedクライアントドライバーです。

LuaRestyMySQLLibrary

Lua Nginx向けLua MySQLクライアントドライバーです。

LuaRestyRedisLibrary

軽量で高速なredis rawレスポンスパーサーと、redis rawリクエスト関数を実装します。

LuaRestyStringLibrary

文字列ユーティリティと共通ハッシュ関数を提供するLuaライブラリです。

LuaRestyUploadLibrary

HTTPファイルアップロードのためのストリーミングリーダーおよびパーサーです。

LuaRestyUpstreamHealthcheckLibrary

Nginxアップストリームサーバーのヘルスチェッカーです。

LuaRestyWebSocketLibrary

ノンブロッキングWebSocketサーバーとクライアントを実装します。

LuaRestyLimitTrafficLibrary

トラフィックを制限、制御するためのLuaライブラリです。

LuaRestyShellLibrary

ノンブロッキングシステムシェルコマンドを実行するLuaモジュールです。

LuaRestySignalLibrary

Linuxプロセスを強制終了またはシグナルを送信するためのLuaライブラリです。

LuaTablePoolLibrary

LuaJIT向けLuaテーブルリサイクルプールです。

LuaUpstreamNginxModule

クラシックNginxアップストリーム用APIを提供するNginx Cモジュールです。

OPM

OpenRestyパッケージマネージャです。

PostgresNginxModule

NginxがPostgreSQLデータベースと通信を行うためのアップストリームモジュールです。

RdsCsvNginxModule

Resty-DBD-StreamsをCSV形式に変換します。

RdsJsonNginxModule

Resty-DBD-StreamsをJSON形式に変換します。

RedisNginxModule

nginxがノンブロッキングで Redis 2.x サーバーと通信できるようにするアップストリームモジュールです。

Redis2NginxModule

Redis 2.0 統合プロトコルが実装されたnginxがノンブロッキングで Redis 2.x サーバーと通信できるようにするアップストリームモジュールです。

RestyCLI

OpenResty用コマンドラインユーティリティ群です。

SetMiscNginxModule

Nginxリライトモジュール(MD5/SHA1、SQL/JSONクォーティングなど)にさまざまな set_xxx ディレクティブを追加します。

SrcacheNginxModule

nginxの任意の機能(アップストリームや静的ディスクファイル)に透過的なキャッシュレイヤーを提供します。

StreamLuaNginxModule

Luaの機能をNginxに組み込むOpenRestyのコアコンポーネントです。

XssNginxModule

nginxにクロスサイトAJAXサポートを追加します。

ユースケース

OpenRestyを導入することで以下のような利点があります。

  • 高性能でスケーラブルなWebアプリケーション、Webサービス、動的なWebゲートウェイを構築できます。
  • OpenRestyチームによって開発された多くの高品質なNginxモジュールを利用できます。
  • 開発者は独自のLuaスクリプトを実行することができます。

動作環境

  • 主要Linuxディストリビューション(Ubuntu、Debian、CentOS、RHEL、Fedora、OpenSUSE、Alpine、Amazon Linux)向けにビルド済パッケージを提供しています。
  • Mac Xおよび Mac OSの場合は、Homebrewパッケージマネージャーを使用してインストールすることが推奨されています。
  • Dockerイメージ、Windows版も用意されています。

OpenRestyのライセンス

OpenRestyのライセンスは、2条項のBSDライセンスに基づいています。
記載された2つの条件下で、改変の有無に関わらず、ソースやバイナリの利用と再配布が認められています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • JBoss Enterprise Application Platform

    JBoss Enterprise Application Platform

    ジェイボス エンタープライズアプリケーションプラットフォーム(イーエイピー)。J2EE1.4準拠のJ2EEアプリケーションサーバです。

  • Nginx
    サポート対象

    Nginx

    エンジンエックス。Apache HTTP Serverに次ぐ利用率で人気急上昇中の高速・高性能Webサーバです。

  • Kong

    Kong

    コング。APIマーケットプレイスの技術をもとに2015年からオープンソースプロジェクトとして提供が開始されたAPIゲートウェイ(APIアグリゲータ)です。

  • GlassFish

    GlassFish

    グラスフィッシュ。オープンソースのアプリケーションサーバです。

  • Apache Tomcat
    サポート対象

    Apache Tomcat

    アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。