Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
mruby_nginx_module
∼ Embed mruby into Nginx ∼
久保 達彦
cubicdaiya@gmail.com
2013/10/16 渋谷.rb
13年10月16日水曜日
自己紹介
✦

久保 達彦(H.N:bokko)

✦

@cubicdaiya(twitter, github)

✦

Senior Software Engineer@pixiv Inc.

13年10月16日水曜日
最近はNginxのモジュール開発に凝ってます
✦

mruby_nginx_module
✦

✦

ngx_small_light
✦

✦

13年10月16日水曜日

Dynamic Image Transformation for Ng...
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
✦

13年10月16日水曜日

http://www.sli...
とある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...
公式サイト
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により特化したものを目指しています
✦

✦

共有メモリ・ノンブロッキングソケッ...
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
✦

✦

ngx_access_t...
xxx_access_tokenの認証方式
以下のパラメータをリクエストURLに付加する
・AccessKey -> 公開
・Expires

文字列

-> 有効期限(エポック値)

・Signature -> シグネチャ
Text = Me...
ngx_access_token
with mruby_nginx_module

13年10月16日水曜日
今のところ使える機能
✦

バイトコードキャッシュ

✦

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

✦

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

✦

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

...
今後の予定
✦

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

✦

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

✦

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

✦

Fiber(コルーチン)導入

...
Nächste SlideShare
Wird geladen in …5
×

mruby_nginx_module

3.081 Aufrufe

Veröffentlicht am

in shibuya.rb 2013/10/16

  • Als Erste(r) kommentieren

mruby_nginx_module

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

×