際際滷

際際滷Share a Scribd company logo
mruby_nginx_module
゛ Embed mruby into Nginx ゛
消隠?_刔
cubicdaiya@gmail.com
2013/10/16 i紅.rb
13定10埖16晩邦袗晩
徭失B初
?

消隠?_刔(H.N:bokko)

?

@cubicdaiya(twitter, github)

?

Senior Software Engineer@pixiv Inc.

13定10埖16晩邦袗晩
恷除はNginxのモジュ`ル_kに蹄ってます
?

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周ほどパッチ僕りました
WEB+DBでもNginxの並をきました
WEB+DB PRESS Vol.72
&盾nginx
O協の悲來と
れたスケ`ラビリティ
&慌广宀
@harukasan
@semind
13定10埖16晩邦袗晩
WEB+DBでもNginxの並をきました
WEB+DB PRESS Vol.72
&盾nginx
O協の悲來と
れたスケ`ラビリティ
&慌广宀
@harukasan
@semind
13定10埖16晩邦袗晩
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
とある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

?

吭_k嶄

?

http://git.io/d3sJtw

13定10埖16晩邦袗晩
巷塀サイト
http://cubicdaiya.github.io/
mruby_nginx_module/

13定10埖16晩邦袗晩
mruby
?

X楚Ruby

?

Mみzみ蛍勸鬚韻砲泙弔發箸罎ひろ箆が_k

?

CとB亊しやすいようにOされてる

?

リッチなLuaというイメ`ジ

13定10埖16晩邦袗晩
ngx_mrubyとの`い
?

(mod|ngx)_mrubyはWebサ`バの峰y匯が朕議の匯つ

?

mruby_nginx_moduleはNginxにより蒙晒したものを朕峺しています
?

?

慌嗤メモリ?ノンブロッキングソケットAPI(嚠協)

?

13定10埖16晩邦袗晩

Nginx Core APIバインディングの割

Nginxのモジュ`ルは畠何mrubyでける,らいにしたいです
Hello, World!

13定10埖16晩邦袗晩
nginxの篳にset

#=> 55
13定10埖16晩邦袗晩
ファイル峺協も辛嬬

?枠^に仝/々がある栽は~パス
?それ參翌の栽はパス(conf_pre?xがroot)
13定10埖16晩邦袗晩
ヘッダきQえ

# 云栖はtext/html

13定10埖16晩邦袗晩
レスポンスボディも(ry

13定10埖16晩邦袗晩
光I尖フェ`ズでデ`タ慌嗤

13定10埖16晩邦袗晩
Regexpクラス

13定10埖16晩邦袗晩
富しk婢議な箭

13定10埖16晩邦袗晩
(mod|ngx)_access_token
っぽいアクセスJ^

13定10埖16晩邦袗晩
(mod|ngx)_access_token
?

S3のクエリ猟忖双J^っぽいC嬬を戻工
?

?

?

蒙協のアクセスト`クンに児づいたJ^
リソ`スの嗤親斛湟O協

mod_access_token
?

?

ngx_access_token
?

13定10埖16晩邦袗晩

livedoor(FNHN Japan)が_k

@cubicdaiyaが_k
xxx_access_tokenのJ^圭塀
參和のパラメ`タをリクエストURLに原紗する
?AccessKey -> 巷_
?Expires

猟忖双

-> 嗤親斛(エポック)

?Signature -> シグネチャ
Text = Method + Uri + Expires + AccessKey
Signature = Base64(HMAC_SHA1(Text, (☆) SecretKey))
(☆)蜘畜
13定10埖16晩邦袗晩

猟忖双(サ`バ箸敗O協)
ngx_access_token
with mruby_nginx_module

13定10埖16晩邦袗晩
書のところ聞えるC嬬
?

バイトコ`ドキャッシュ

?

光Nハンドラへのフック(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ベ`ス)
書瘁の嚠協
?

慌嗤メモリAPI(Nginx::Shared)

?

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

?

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

?

Fiber(コル`チン)秘

?

傚算

?

etc

13定10埖16晩邦袗晩
Ad

Recommended

mruby_nginx_module?Embedded mruby into Nginx?
mruby_nginx_module?Embedded mruby into Nginx?
Tatsuhiko Kubo
?
mruby_nginx_module at pyfes 2013.11
mruby_nginx_module at pyfes 2013.11
Tatsuhiko Kubo
?
Inside pixiv's infrastructure?application cluster side?
Inside pixiv's infrastructure?application cluster side?
Tatsuhiko Kubo
?
React VR ことはじめ
React VR ことはじめ
Kazuhiro Hara
?
皆敬温乙乙艶姻と粥永鴛のデザイン
皆敬温乙乙艶姻と粥永鴛のデザイン
Kazuhiro Hara
?
VSCodeで兵めるAzure Static Web Apps_k
VSCodeで兵めるAzure Static Web Apps_k
Yuta Matsumura
?
Re-frame and A-Frame
Re-frame and A-Frame
Kazuhiro Hara
?
0831 node僥@lt
0831 node僥@lt
Kazuya Fukumoto
?
Grunt.jsを聞った Expressの_kh廠B
Grunt.jsを聞った Expressの_kh廠B
kamiyam .
?
JAWS Osaka July 2014, Opsworks + Node.js
JAWS Osaka July 2014, Opsworks + Node.js
Martin Heidegger
?
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
Kazuhiro Hara
?
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
Yuta Matsumura
?
Riot + generator で兵める仟しいデ`タバインディング
Riot + generator で兵める仟しいデ`タバインディング
Tsutomu Kawamura
?
Devfes kyoto2017
Devfes kyoto2017
Satomi Tsujita
?
赫庄岳を聞おう
赫庄岳を聞おう
takemaedenki
?
遺看稼界姻艶岳艶5〜さくら
遺看稼界姻艶岳艶5〜さくら
Masaya Hayashi
?
Node js 秘T
Node js 秘T
Satoshi Takami
?
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
zuya
?
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Kazuhiro Hara
?
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
Koichiro Sumi
?
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
Endoh Shingo
?
今翌で廣朕されてるJs framework ^mithril ̄の蒙
今翌で廣朕されてるJs framework ^mithril ̄の蒙
Shoyo Kyou
?
界看稼界姻艶岳艶5と粥安皆のほどよいvS
界看稼界姻艶岳艶5と粥安皆のほどよいvS
Takahisa Iwamoto
?
Vue.js with Go
Vue.js with Go
Kazuhiro Kubota
?
Ohs#7 僥API
Ohs#7 僥API
v尖 寄勸
?
Vue
Vue
弯R 眉屯
?
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
Koichiro Sumi
?
Nginx
Nginx
Soichi Takamura
?
Mod mrubyについて
Mod mrubyについて
Ryosuke MATSUMOTO
?

More Related Content

What's hot (20)

Grunt.jsを聞った Expressの_kh廠B
Grunt.jsを聞った Expressの_kh廠B
kamiyam .
?
JAWS Osaka July 2014, Opsworks + Node.js
JAWS Osaka July 2014, Opsworks + Node.js
Martin Heidegger
?
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
Kazuhiro Hara
?
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
Yuta Matsumura
?
Riot + generator で兵める仟しいデ`タバインディング
Riot + generator で兵める仟しいデ`タバインディング
Tsutomu Kawamura
?
Devfes kyoto2017
Devfes kyoto2017
Satomi Tsujita
?
赫庄岳を聞おう
赫庄岳を聞おう
takemaedenki
?
遺看稼界姻艶岳艶5〜さくら
遺看稼界姻艶岳艶5〜さくら
Masaya Hayashi
?
Node js 秘T
Node js 秘T
Satoshi Takami
?
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
zuya
?
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Kazuhiro Hara
?
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
Koichiro Sumi
?
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
Endoh Shingo
?
今翌で廣朕されてるJs framework ^mithril ̄の蒙
今翌で廣朕されてるJs framework ^mithril ̄の蒙
Shoyo Kyou
?
界看稼界姻艶岳艶5と粥安皆のほどよいvS
界看稼界姻艶岳艶5と粥安皆のほどよいvS
Takahisa Iwamoto
?
Vue.js with Go
Vue.js with Go
Kazuhiro Kubota
?
Ohs#7 僥API
Ohs#7 僥API
v尖 寄勸
?
Vue
Vue
弯R 眉屯
?
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
Koichiro Sumi
?
Grunt.jsを聞った Expressの_kh廠B
Grunt.jsを聞った Expressの_kh廠B
kamiyam .
?
JAWS Osaka July 2014, Opsworks + Node.js
JAWS Osaka July 2014, Opsworks + Node.js
Martin Heidegger
?
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
buddyのユ`ザJ^巓りのデ`タ夛 - 聞われているデ`タの函り指しについてのお
Kazuhiro Hara
?
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
イケてる室宝で瞳嵎を毅隠しつつスピ`ド湖のある蝕kをg屬垢蠅┐燭笋蠏
Yuta Matsumura
?
Riot + generator で兵める仟しいデ`タバインディング
Riot + generator で兵める仟しいデ`タバインディング
Tsutomu Kawamura
?
赫庄岳を聞おう
赫庄岳を聞おう
takemaedenki
?
遺看稼界姻艶岳艶5〜さくら
遺看稼界姻艶岳艶5〜さくら
Masaya Hayashi
?
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
づや氏 Vol4 Node.jsとphpのパフォ`マンスを曳^してみる
zuya
?
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Clojure の光NReact狼ラッパ`ライブラリのサ`バ`サイドレンダリングのF彜について
Kazuhiro Hara
?
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
ActiveResourceモデルによるAPIのL盈の伽い ~レスポンスタイムへの崑凋議唹~ at #shinjukurb
Koichiro Sumi
?
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
書さら療けない安艶恢サ`バの児云岑紛と僉び圭
Endoh Shingo
?
今翌で廣朕されてるJs framework ^mithril ̄の蒙
今翌で廣朕されてるJs framework ^mithril ̄の蒙
Shoyo Kyou
?
界看稼界姻艶岳艶5と粥安皆のほどよいvS
界看稼界姻艶岳艶5と粥安皆のほどよいvS
Takahisa Iwamoto
?
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
鞍2000倖のコンテナを壊岳温姻岳するが融隼棒してWが妾禝した三
Koichiro Sumi
?

Similar to mruby_nginx_module (9)

Nginx
Nginx
Soichi Takamura
?
Mod mrubyについて
Mod mrubyについて
Ryosuke MATSUMOTO
?
Openresty
Openresty
ogawatti
?
NginxとLuaを喘いた啜弔淵螢乂`スプロキシでデプロイを 100 蔚堀くした
NginxとLuaを喘いた啜弔淵螢乂`スプロキシでデプロイを 100 蔚堀くした
toshi_pp
?
いまさら療けない鰻赫鴛鰻掛コンフィグ喝酷5-鰻赫鴛鰻掛-遺看馨馨顎稼庄岳霞-20200805
いまさら療けない鰻赫鴛鰻掛コンフィグ喝酷5-鰻赫鴛鰻掛-遺看馨馨顎稼庄岳霞-20200805
shinyatsukasaki
?
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
?
NGINX + Ansible Automation Webinar (晩云Z井
NGINX + Ansible Automation Webinar (晩云Z井
NGINX, Inc.
?
nginx + lua + ObjectStorage ファイルアップロ`ド/ダウンロ`ドの互堀晒
nginx + lua + ObjectStorage ファイルアップロ`ド/ダウンロ`ドの互堀晒
Shuichi Yukimoto
?
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
?
NginxとLuaを喘いた啜弔淵螢乂`スプロキシでデプロイを 100 蔚堀くした
NginxとLuaを喘いた啜弔淵螢乂`スプロキシでデプロイを 100 蔚堀くした
toshi_pp
?
いまさら療けない鰻赫鴛鰻掛コンフィグ喝酷5-鰻赫鴛鰻掛-遺看馨馨顎稼庄岳霞-20200805
いまさら療けない鰻赫鴛鰻掛コンフィグ喝酷5-鰻赫鴛鰻掛-遺看馨馨顎稼庄岳霞-20200805
shinyatsukasaki
?
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
?
NGINX + Ansible Automation Webinar (晩云Z井
NGINX + Ansible Automation Webinar (晩云Z井
NGINX, Inc.
?
nginx + lua + ObjectStorage ファイルアップロ`ド/ダウンロ`ドの互堀晒
nginx + lua + ObjectStorage ファイルアップロ`ド/ダウンロ`ドの互堀晒
Shuichi Yukimoto
?
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
?
Ad

More from Tatsuhiko Kubo (12)

memcached proxy server development and operation
memcached proxy server development and operation
Tatsuhiko Kubo
?
ngx_small_light
ngx_small_light
Tatsuhiko Kubo
?
ngx_small_lightで啜張汽爛優ぅ詆撹 #yapcasia2012
ngx_small_lightで啜張汽爛優ぅ詆撹 #yapcasia2012
Tatsuhiko Kubo
?
pixiv thumbnails
pixiv thumbnails
Tatsuhiko Kubo
?
ngx_small_light at 及2指プログラミング茶氏
ngx_small_light at 及2指プログラミング茶氏
Tatsuhiko Kubo
?
馨艶馨界温界鞄艶糸から悪霞看岳看意霞界看看稼へ
馨艶馨界温界鞄艶糸から悪霞看岳看意霞界看看稼へ
Tatsuhiko Kubo
?
dtl - diff template library
dtl - diff template library
Tatsuhiko Kubo
?
沿庄恰庄厩の鮫颯▲奪廛踪`ドシステム
沿庄恰庄厩の鮫颯▲奪廛踪`ドシステム
Tatsuhiko Kubo
?
Memorypool Key
Memorypool Key
Tatsuhiko Kubo
?
Diff
Diff
Tatsuhiko Kubo
?
memcached proxy server development and operation
memcached proxy server development and operation
Tatsuhiko Kubo
?
ngx_small_lightで啜張汽爛優ぅ詆撹 #yapcasia2012
ngx_small_lightで啜張汽爛優ぅ詆撹 #yapcasia2012
Tatsuhiko Kubo
?
ngx_small_light at 及2指プログラミング茶氏
ngx_small_light at 及2指プログラミング茶氏
Tatsuhiko Kubo
?
馨艶馨界温界鞄艶糸から悪霞看岳看意霞界看看稼へ
馨艶馨界温界鞄艶糸から悪霞看岳看意霞界看看稼へ
Tatsuhiko Kubo
?
dtl - diff template library
dtl - diff template library
Tatsuhiko Kubo
?
沿庄恰庄厩の鮫颯▲奪廛踪`ドシステム
沿庄恰庄厩の鮫颯▲奪廛踪`ドシステム
Tatsuhiko Kubo
?
Ad

mruby_nginx_module