Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
1.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
120
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
330
SRE の考えをマネジメントに活かす / applying SRE ideas to management
chaspy
7
8.4k
RAGの簡易評価によるフィードバックサイクル実践 / Feedback cycle practice through simplified assessment of RAGs
chaspy
2
6.2k
定量データと定性評価を用いた技術戦略の組織的実践 / Systematic implementation of technology strategies using quantitative data and qualitative evaluation
chaspy
9
2.4k
エンジニアブランディングチームの KPI / KPI's of engineer branding team
chaspy
2
2.6k
「SLO Review」今やるならこうする / If I had to do the "SLO Review" again
chaspy
3
2.5k
開発者とともに作る Site Reliability Engineering / SREing with Developers
chaspy
10
9.2k
Other Decks in Technology
See All in Technology
DORA_Metrics.pdf
wagnerfusca
1
100
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.5k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
800
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
3.1k
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
6
770
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
2
250
Making AI Agents Safe and Fast- Jev, Obsidian, and the Meta-Harness
x5gtrn
PRO
0
140
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
0
190
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
220
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
1.6k
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
4
1.3k
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
160
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Tell your own story through comics
letsgokoyo
1
1.1k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Facilitating Awesome Meetings
lara
57
7.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Building Adaptive Systems
keathley
44
3.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
GraphQLとの向き合い方2022年版
quramy
50
15k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
560
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