mruby_nginx_module〜embedded mruby into nginx〜

29
mruby_nginx_module Embedded mruby into Nginx 久保 達彦 [email protected] 13921日土曜日

Upload: tatsuhiko-kubo

Post on 28-May-2015

1.525 views

Category:

Technology


5 download

DESCRIPTION

Embedded mruby into Nginx

TRANSCRIPT

Page 1: mruby_nginx_module〜Embedded mruby into Nginx〜

mruby_nginx_module~ Embedded mruby into Nginx ~

久保 達彦[email protected]

13年9月21日土曜日

Page 2: mruby_nginx_module〜Embedded mruby into Nginx〜

自己紹介

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

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

13年9月21日土曜日

Page 3: mruby_nginx_module〜Embedded mruby into Nginx〜

最近は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日土曜日

Page 4: mruby_nginx_module〜Embedded mruby into Nginx〜

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

□詳解nginx

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

□共著者@harukasan@semind

13年9月21日土曜日

Page 5: mruby_nginx_module〜Embedded mruby into Nginx〜

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

□詳解nginx

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

□共著者@harukasan@semind

13年9月21日土曜日

Page 6: mruby_nginx_module〜Embedded mruby into Nginx〜

読者の声

13年9月21日土曜日

Page 7: mruby_nginx_module〜Embedded mruby into Nginx〜

13年9月21日土曜日

Page 8: mruby_nginx_module〜Embedded mruby into Nginx〜

( ゚д゚)ヒィィィィ

13年9月21日土曜日

Page 9: mruby_nginx_module〜Embedded mruby into Nginx〜

13年9月21日土曜日

Page 10: mruby_nginx_module〜Embedded mruby into Nginx〜

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

13年9月21日土曜日

Page 11: mruby_nginx_module〜Embedded mruby into Nginx〜

13年9月21日土曜日

Page 12: mruby_nginx_module〜Embedded mruby into Nginx〜

最終的には、

13年9月21日土曜日

Page 13: mruby_nginx_module〜Embedded mruby into Nginx〜

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

13年9月21日土曜日

Page 14: mruby_nginx_module〜Embedded mruby into Nginx〜

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

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

✦ lua_nginx_module導入&運用中

✦ @harukasan++✦ OpenResty最強

13年9月21日土曜日

Page 15: mruby_nginx_module〜Embedded mruby into Nginx〜

一方自分は・・・

13年9月21日土曜日

Page 16: mruby_nginx_module〜Embedded mruby into Nginx〜

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

13年9月21日土曜日

Page 17: mruby_nginx_module〜Embedded mruby into Nginx〜

現在、

13年9月21日土曜日

Page 18: mruby_nginx_module〜Embedded mruby into Nginx〜

mruby_nginx_module

✦ nginx.confでmrubyが書ける

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

✦ ngx_mrubyからfork by bokko

✦ 鋭意開発中

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

13年9月21日土曜日

Page 19: mruby_nginx_module〜Embedded mruby into Nginx〜

mruby

✦ 軽量Ruby

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

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

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

13年9月21日土曜日

Page 20: mruby_nginx_module〜Embedded mruby into Nginx〜

Hello, World!

13年9月21日土曜日

Page 21: mruby_nginx_module〜Embedded mruby into Nginx〜

nginxの変数にset

#=> 55

13年9月21日土曜日

Page 22: mruby_nginx_module〜Embedded mruby into Nginx〜

ヘッダ書き換え

# 本来はtext/html

13年9月21日土曜日

Page 23: mruby_nginx_module〜Embedded mruby into Nginx〜

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

13年9月21日土曜日

Page 24: mruby_nginx_module〜Embedded mruby into Nginx〜

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

13年9月21日土曜日

Page 25: mruby_nginx_module〜Embedded mruby into Nginx〜

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

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

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

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

✦ ngx_access_token✦ @cubicdaiyaが開発

13年9月21日土曜日

Page 26: mruby_nginx_module〜Embedded mruby into Nginx〜

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

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

・Signature -> シグネチャ

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

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

13年9月21日土曜日

Page 27: mruby_nginx_module〜Embedded mruby into Nginx〜

ngx_access_tokenwith mruby_nginx_module

13年9月21日土曜日

Page 28: mruby_nginx_module〜Embedded mruby into Nginx〜

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

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

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

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

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

13年9月21日土曜日

Page 29: mruby_nginx_module〜Embedded mruby into Nginx〜

今後の予定

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

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

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

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

✦ etc

13年9月21日土曜日