mruby_nginx_module〜Embedded mruby into Nginx〜

Preview:

DESCRIPTION

Embedded mruby into Nginx

Citation preview

mruby_nginx_module~ Embedded mruby into Nginx ~

久保 達彦cubicdaiya@gmail.com

13年9月21日土曜日

自己紹介

✦ 久保 達彦(H.N:bokko)

✦ @cubicdaiya(twitter, github)✦ ピクシブでエンジニアやってます

13年9月21日土曜日

最近はNginxのモジュール開発に凝ってます

✦ mruby_nginx_module✦ Embed mruby into Nginx

✦ ngx_small_light✦ Dynamic Image Transformation for Nginx

✦ ngx_access_token✦ Porting of mod_access_token into Nginx

13年9月21日土曜日

WEB+DBでもNginxの記事を書きましたWEB+DB PRESS Vol.72

□詳解nginx

設定の柔軟性と優れたスケーラビリティ

□共著者@harukasan@semind

13年9月21日土曜日

WEB+DBでもNginxの記事を書きましたWEB+DB PRESS Vol.72

□詳解nginx

設定の柔軟性と優れたスケーラビリティ

□共著者@harukasan@semind

13年9月21日土曜日

読者の声

13年9月21日土曜日

13年9月21日土曜日

( ゚д゚)ヒィィィィ

13年9月21日土曜日

13年9月21日土曜日

ごめんなさいごめんなさいごめんなさい........................

13年9月21日土曜日

13年9月21日土曜日

最終的には、

13年9月21日土曜日

とあるpixivを支えるインフラエンジニア

13年9月21日土曜日

それから月日は流れ...

✦ pixivのnginx.confはまだまだ増えてる

✦ lua_nginx_module導入&運用中

✦ @harukasan++✦ OpenResty最強

13年9月21日土曜日

一方自分は・・・

13年9月21日土曜日

ngx_mrubyにPull request送っていた(5~60件くらい)

13年9月21日土曜日

現在、

13年9月21日土曜日

mruby_nginx_module

✦ nginx.confでmrubyが書ける

✦ Nginxのモジュールがmrubyで書ける

✦ ngx_mrubyからfork by bokko

✦ 鋭意開発中

✦ https://github.com/cubicdaiya/mruby_nginx_module

13年9月21日土曜日

mruby

✦ 軽量Ruby

✦ 組み込み分野向けにまつもとゆきひろ氏が開発

✦ Cと連携しやすいように設計されてる

✦ リッチなLuaというイメージ

13年9月21日土曜日

Hello, World!

13年9月21日土曜日

nginxの変数にset

#=> 55

13年9月21日土曜日

ヘッダ書き換え

# 本来はtext/html

13年9月21日土曜日

各処理フェーズでデータ共有

13年9月21日土曜日

(mod|ngx)_access_tokenっぽいアクセス認証

13年9月21日土曜日

(mod|ngx)_access_token✦ S3のクエリ文字列認証っぽい機能を提供

✦ 特定のアクセストークンに基づいた認証

✦ リソースの有効期限設定

✦ mod_access_token✦ livedoor(現NHN Japan)が開発

✦ ngx_access_token✦ @cubicdaiyaが開発

13年9月21日土曜日

xxx_access_tokenの認証方式以下のパラメータをリクエストURLに付加する

・AccessKey -> 公開鍵文字列・Expires -> 有効期限(エポック値)

・Signature -> シグネチャ

Text = Method + Uri + Expires + AccessKeySignature = Base64(HMAC_SHA1(Text, (※) SecretKey))

(※)秘密鍵文字列(サーバ側で設定)

13年9月21日土曜日

ngx_access_tokenwith mruby_nginx_module

13年9月21日土曜日

今のところ使える機能✦ 中間コードキャッシュ

✦ 各種ハンドラへのフック(rewrite,access,content,log)

✦ ヘッダおよびボディのフィルタリング

✦ Nginx変数へのアクセス(set & get)

✦ Nginx::(Request|Context|Time|Base64|Digest|etc)

13年9月21日土曜日

今後の予定

✦ 正規表現API(Nginx::Regexp)

✦ 共有メモリAPI(Nginx::Shared)

✦ サブリクエストAPI(Nginx::SubRequest)

✦ ノンブロッキングソケットAPI(Nginx::Socket)

✦ etc

13年9月21日土曜日