Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nginx + mrubyを動かす / run the ngx_mruby
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takeshi Kondo
May 23, 2018
Technology
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nginx + mrubyを動かす / run the ngx_mruby
Takeshi Kondo
May 23, 2018
More Decks by Takeshi Kondo
See All by Takeshi Kondo
SREの知識地図 - 第2章の紹介 - / Knowledge Map of SRE – Introduction to Chapter 2 –
chaspy
0
99
SRE NEXT CfP チームが語る 聞きたくなるプロポーザルとは / Proposals by the SRE NEXT CfP Team that are sure to be accepted
chaspy
2
1.8k
Slack Platform(Deno) での RAG 実装 - LangChain(js) を使ってみた / rag-implementation-on-slack-platform-deno-experimenting-with-langchain-js
chaspy
0
310
SRE の考えをマネジメントに活かす / applying SRE ideas to management
chaspy
7
8.3k
RAGの簡易評価によるフィードバックサイクル実践 / Feedback cycle practice through simplified assessment of RAGs
chaspy
2
6k
定量データと定性評価を用いた技術戦略の組織的実践 / Systematic implementation of technology strategies using quantitative data and qualitative evaluation
chaspy
9
2.3k
エンジニアブランディングチームの KPI / KPI's of engineer branding team
chaspy
2
2.5k
「SLO Review」今やるならこうする / If I had to do the "SLO Review" again
chaspy
3
2.4k
開発者とともに作る Site Reliability Engineering / SREing with Developers
chaspy
10
9.1k
Other Decks in Technology
See All in Technology
Making sense of Google’s agentic dev tools
glaforge
1
190
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
100
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.5k
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
最近評価が難しくなった
maroon8021
0
340
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
11
7k
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
1
240
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
280
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.7k
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
0
160
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
290
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
320
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Abbi's Birthday
coloredviolet
3
8.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.4k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
The agentic SEO stack - context over prompts
schlessera
0
840
New Earth Scene 8
popppiees
3
2.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Optimizing for Happiness
mojombo
378
71k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
Transcript
/HJOY NSVCZΛಈ͔͢ LBXBTBLJSCपه೦-5େձ LPOEPUBLFTIJ
/HJOY NSVCZΛಈ͔͢ LBXBTBLJ SC पه೦-5େձ LPOEPUBLFTIJ
1SPpMF w LPOEPUBLFTIJ w 4PGUXBSF&OHJOFFS w 4JUF3FMJBCJMJUZ&OHJOFFS w DIBTQZ@ w
DIBTQZ w DIBTQZ w CMPHDIBTQZNF ༗څফԽதʂ
/HJOY w ܰྔͰߴ͍εέʔϥϏϦςΟΛތΔΦʔϓϯιʔεͷ )551αʔόͰ͢ɻʮ͑Μ͡Μ͑ͬ͘͢ʯͱಡΈ·͢ɻ OHJOY࣮ફೖOHJOY
/HJOY w ΞΫηε੍ޚ w 63*3FXSJUF w H[JQѹॖ w ϦόʔεϓϩΩγ w
-ϩʔυόϥϯε w ίϯςϯπΩϟογϡ w 44-λʔϛωʔγϣϯɺ)551ήʔτΣΠ w -ʢ5$1ʣϩʔυόϥϯε w ϝʔϧϓϩΩγ OHJOY࣮ફೖOHJOY
/HJOY w ΞΫηε੍ޚ w 63*3FXSJUF w H[JQѹॖ w ϦόʔεϓϩΩγ w
-ϩʔυόϥϯε w ίϯςϯπΩϟογϡ w 44-λʔϛωʔγϣϯɺ)551ήʔτΣΠ w -ʢ5$1ʣϩʔυόϥϯε w ϝʔϧϓϩΩγ OHJOY࣮ફೖOHJOY ͳΜͰͰ͖͗͢
NSVCZ w ΈࠐΈ͚ܰྔ3VCZ w 3VCZޓ w Γͳ͍Ϋϥεɾػೳ͋Γ w ݴޠ্༷ͷࠩҟ͋Γ ·ͭͱΏ͖ͻΖɹࠐ3VCZʮNSVCZʯͷͯ͢૯ूฤ
OHY@NSVCZ w IUUQTHJUIVCDPNNBUTVNPUPSZOHY@NSVCZ w OHJOYͷNSVCZ֦ு w OHY@MVBͷNSVCZ൛ w NPE@NSVCZͷOHJOY൛
/HJOYͷϑΣʔζͱϑοΫϙΠϯτ mruby nginx આ໌ mruby_server_rewrite_handle server rewrite αʔόίϯςΩετͷrewrite find config
֘͢Δlocation configΛ୳͢ mruby_rewrite_handler rewrite locationͷrewriteॲཧ post rewrite pre-access mruby_access_handler access ϑΝΠϧͷΞΫηε post-access try-files try_filesͷॲཧ mruby_content_handler content bodyͷੜ mruby_log_handler log ϩάॻ͖ࠐΈ )551SFRVFTUQSPDFTTJOHQIBTFTJO/HJOYIUUQXXXOHJOYHVUTDPNQIBTFT
ʢແବʹʣͬͨ͜ͱ w p[[CV[[ʹ(&5͢Δͱp[[CV[[ͷ݁ՌΛฦ͢ w SFEJSFDUʹ(&5͢Δͱp[[CV[[ʹϦμΠϨΫτ͢Δ IUUQTHJUIVCDPNDIBTQZWBHSBOUOHJOY
͜͜ʹp[[CV[[͕͋Δ͡ΌΖʁ r = Nginx::Request.new n = r.var.arg_n.to_i if n %
15 == 0 ans = "FizzBuzz" elsif n % 3 == 0 ans = "Fizz" elsif n % 5 == 0 ans = "Buzz" else ans = n end Nginx.echo(ans) ʢ΅͖ʣIJHIMJHIU͚ͬͨͲΠϚΠνͩͳʜ
OHJOYDPOG http { server { location /fizzbuzz { mruby_content_handler /usr/local/nginx/conf/fizzbuzz.rb;
} location /redirect { mruby_rewrite_handler_code ' Nginx.redirect "/fizzbuzz", Nginx::HTTP_MOVED_PERMANENTLY '; } } }
֬ೝ require 'net/http' (0..30).each{|n| Net::HTTP.get_print("192.168.33.100", "/fizzbuzz?n=#{n}") }
খωλ w OJMUP@JͬͯͳΜͰ͢Ͷɻɻɻ [vagrant@nginx ~]$ /usr/local/src/ngx_mruby/mruby/bin/mirb mirb - Embeddable Interactive
Ruby Shell > nil.to_i => 0
·ͱΊͱࠓޙ w OHJOYDPOG͕ΧΦεʹͳΔ߹ʹྑͦ͞͏ w JGσΟϨΫςΟϒ͋Δ͚ͲFMTFɺ"/% 03ͳ͍͠ w IUUQͱSVCZ෮श͠Α
5IBOLZPV