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
-
サポート対象
Red Hat JBoss Enterprise Application Platform
ジェイボス エンタープライズアプリケーションプラットフォーム(イーエイピー)。J2EE1.4準拠のJ2EEアプリケーションサーバです。
-
サポート対象
Nginx
エンジンエックス。Apache HTTP Serverに次ぐ利用率で人気急上昇中の高速・高性能Webサーバです。
-
Kong
コング。APIマーケットプレイスの技術をもとに2015年からオープンソースプロジェクトとして提供が開始されたAPIゲートウェイ(APIアグリゲータ)です。
-
GlassFish
グラスフィッシュ。オープンソースのアプリケーションサーバです。
-
サポート対象
Apache Tomcat
アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア