mruby_nginx_module
DESCRIPTION
in shibuya.rb 2013/10/16TRANSCRIPT
自己紹介
✦ 久保 達彦(H.N:bokko)
✦ @cubicdaiya(twitter, github)✦ Senior Software Engineer@pixiv Inc.
13年10月16日水曜日
最近は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
✦ Nginx本体にも2件ほどパッチ送りました
13年10月16日水曜日
WEB+DBでもNginxの記事を書きましたWEB+DB PRESS Vol.72
□詳解nginx
設定の柔軟性と優れたスケーラビリティ
□共著者@harukasan@semind
13年10月16日水曜日
WEB+DBでもNginxの記事を書きましたWEB+DB PRESS Vol.72
□詳解nginx
設定の柔軟性と優れたスケーラビリティ
□共著者@harukasan@semind
13年10月16日水曜日
Nginx in pixiv
✦ 6000行を越えるnginx.conf
✦ lua_nginx_module導入&運用中
✦ Using ngx_lua in pixiv✦ http://www.slideshare.net/harukayon/
ngx-lua-public
13年10月16日水曜日
とあるpixivを支えるインフラエンジニア
13年10月16日水曜日
一方自分は・・・
13年10月16日水曜日
ngx_mrubyにPull request送る日々(50~60件くらい)
13年10月16日水曜日
今年の夏にfork
13年10月16日水曜日
mruby_nginx_module✦ nginx.confでmrubyが書ける
✦ Nginxのモジュールがmrubyで書ける
✦ ngx_mrubyからfork by bokko
✦ 鋭意開発中
✦ http://git.io/d3sJtw
13年10月16日水曜日
公式サイトhttp://cubicdaiya.github.io/
mruby_nginx_module/
13年10月16日水曜日
mruby
✦ 軽量Ruby
✦ 組み込み分野向けにまつもとゆきひろ氏が開発
✦ Cと連携しやすいように設計されてる
✦ リッチなLuaというイメージ
13年10月16日水曜日
ngx_mrubyとの違い
✦ (mod|ngx)_mrubyはWebサーバの拡張記述統一が目的の一つ
✦ mruby_nginx_moduleはNginxにより特化したものを目指しています
✦ Nginx Core APIバインディングの拡充
✦ 共有メモリ・ノンブロッキングソケットAPI(予定)
✦ Nginxの拡張モジュールは全部mrubyで書ける!くらいにしたいです
13年10月16日水曜日
Hello, World!
13年10月16日水曜日
nginxの変数にset
#=> 55
13年10月16日水曜日
ファイル指定も可能
・先頭に「/」がある場合は絶対パス・それ以外の場合は相対パス(conf_prefixがroot)
13年10月16日水曜日
ヘッダ書き換え
# 本来はtext/html
13年10月16日水曜日
レスポンスボディも(ry
13年10月16日水曜日
各処理フェーズでデータ共有
13年10月16日水曜日
Regexpクラス
13年10月16日水曜日
少し発展的な例
13年10月16日水曜日
(mod|ngx)_access_tokenっぽいアクセス認証
13年10月16日水曜日
(mod|ngx)_access_token✦ S3のクエリ文字列認証っぽい機能を提供
✦ 特定のアクセストークンに基づいた認証
✦ リソースの有効期限設定
✦ mod_access_token✦ livedoor(現NHN Japan)が開発
✦ ngx_access_token✦ @cubicdaiyaが開発
13年10月16日水曜日
xxx_access_tokenの認証方式以下のパラメータをリクエストURLに付加する
・AccessKey -> 公開鍵文字列・Expires -> 有効期限(エポック値)
・Signature -> シグネチャ
Text = Method + Uri + Expires + AccessKeySignature = Base64(HMAC_SHA1(Text, (※) SecretKey))
(※)秘密鍵文字列(サーバ側で設定)
13年10月16日水曜日
ngx_access_tokenwith mruby_nginx_module
13年10月16日水曜日
今のところ使える機能✦ バイトコードキャッシュ
✦ 各種ハンドラへのフック(rewrite,access,content,log)
✦ ヘッダおよびボディのフィルタリング
✦ Nginx変数へのアクセス(set & get)
✦ Nginx::(Request|Context|Time|Base64|Digest|etc)
✦ by Nginx Core API(not mrbgems)
✦ Regexp(PCREベース)
13年10月16日水曜日
今後の予定✦ 共有メモリAPI(Nginx::Shared)
✦ サブリクエストAPI(Nginx::SubRequest)
✦ ノンブロッキングソケットAPI(Nginx::Socket)
✦ Fiber(コルーチン)導入
✦ 宣伝活動
✦ etc
13年10月16日水曜日