https://pepabo.connpass.com/event/179445/
1Χϥʔϛʔγϣοϓͱngx_mruby 20202020-06-24 ϖύϘ EC ςοΫΧϯϑΝϨϯεECࣄۀ෦ ΧϥʔϛʔγϣοϓάϧʔϓαʔϏεج൫νʔϜ ฏ @yano3
View Slide
22 ฏ Yano Teppei@yano3 ʢͷ͞ΜʣECࣄۀ෦ ΧϥʔϛʔγϣοϓάϧʔϓαʔϏεج൫νʔϜ● https://twitter.com/yano3● https://github.com/yano3⛷ ઇࢁ͕͖ ❄ ❄ ❄
3ngx_mrubySection 13
4ngx_mruby ͱA Fast and Memory-Efficient Nginx ExtensionMechanism Scripting with mruby.4
5ngx_mruby ͱ5● mruby ΈࠐΈ͚ͷܰྔͳ Ruby ࣮● Ruby εΫϦϓτͰ nginx Λ֦ுՄೳ● ྨࣅͷͷͱͯ͠ lua-nginx-module(OpenResty)
6ࠓ·Ͱͷ ngx_mrubyར༻ࣄྫSection 26
7ࠓ·Ͱͷ ngx_mruby ར༻ࣄྫಠࣗυϝΠϯৗ࣌SSLͷಈతূ໌ॻಡΈࠐΈৗ࣌SSLhttps://shop-pro.jp/ssl/ΞʔΩςΫνϟhttps://speakerdeck.com/hfm/gmo-hoscon-2016ʢ΄΅ಉ͡ΞʔΩςΫνϟΛհͨ͠ࢿྉʣ7
8৽ͨͳ ngx_mrubyར༻ࣄྫSection 38
9৽ͨͳ ngx_mruby ར༻ࣄྫͱɺͦͷલʹ...ngx_mruby Λ࣮ͬͨͷલఏͱͳͬͨ৽ػೳΧϥʔϛʔWPΦϓγϣϯ ʹ͍ͭͯ9
10ΧϥʔϛʔWPΦϓγϣϯSection 410
11ΧϥʔϛʔWPΦϓγϣϯΧϥʔϛʔΞϓϦετΞ͔ΒΠϯετʔϧhttps://app.shop-pro.jp/apps/7411ΧϥʔϛʔWPΦϓγϣϯͱ
1212ΧϥʔϛʔWPΦϓγϣϯͱ γϣοϓͷυϝΠϯhttps://shop.example.comͷԼͷύεʹ WordPress Λදࣔhttps://shop.example.com/apps/note/ কདྷผͷύεͰଞͷ Web ΞϓϦͷఏڙ͢Δ͜ͱߟྀͨ͠ઃܭΧϥʔϛʔWPΦϓγϣϯ
1313ΞʔΩςΫνϟΧϥʔϛʔWPΦϓγϣϯ
1414ΞʔΩςΫνϟ௨ৗͷγϣοϓΛදࣔΧϥʔϛʔWPΦϓγϣϯ
1515ΞʔΩςΫνϟ● /apps ΛؚΉύε app-proxy ʹϓϩΩγ● app-proxy ͞ΒʹύεʹΑͬͯΞοϓετϦʔϜͷ Web ΞϓϦέʔγϣϯʹϓϩΩγʢ /note ͳΒϩϦϙοϓʂϚωʔδυΫϥυͷΤϯυϙΠϯτ※ʣ※ WordPress Λىಈ͢ΔόοΫΤϯυͱͯ͠ϩϦϙοϓʂϚωʔδυΫϥυΛར༻͍ͯ͠·͢ɻhttps://note.com/mclolipopjp/n/ncd713843e4f2ΧϥʔϛʔWPΦϓγϣϯ
1616ΞʔΩςΫνϟ● ϩϦϙοϓʂϚωʔδυΫϥυଆͰ host ϔομʹΑΓͦΕͧΕͷWordPress ʹϓϩΩγΧϥʔϛʔWPΦϓγϣϯ
1717ngx_mruby ͕ొ͢Δ2ͭͷϙΠϯτ● ಈతϧʔςΟϯά● cookie ͷϑΟϧλϦϯάΧϥʔϛʔWPΦϓγϣϯ
18ಈతϧʔςΟϯάSection 518
19ಈతϧʔςΟϯά19͜ͷΜͷ͓ઌఔͷਤͷ...
2020՝● γϣοϓʢͷυϝΠϯʣͱύεʹΑͬͯҟͳΔΞοϓετϦʔϜʹϓϩΩγ͢Δ● ΧϥʔϛʔWPΦϓγϣϯΛ͍ͬͯͳ͍γϣοϓϓϩΩγ͠ͳ͍ʢ404ʣಈతϧʔςΟϯά
2121ΞϓϦετΞ API Λհͯ͠ΠϯετʔϧใΛ࡞ಈతϧʔςΟϯά
2222WPΦϓγϣϯͷ Web ΞϓϦ API ͔ΒγϣοϓใΛऔಘ͠...ಈతϧʔςΟϯά
2323γϣοϓͷυϝΠϯͱඥ͍ͨ WordPress Λ࡞ಈతϧʔςΟϯά
2424ngx_mruby ϙΠϯτ
2525app-proxy ্ͷ ngx_mruby υϝΠϯͱύε͔ΒϓϩΩγઌΛฦ͢ API ʹϦΫΤετಈతϧʔςΟϯά
2626ngx_mruby ʹΑΓϓϩΩγઌʹಈతʹΞοϓετϦʔϜΛઃఆಈతϧʔςΟϯά
2727ngx_mruby Ͱղܾʂ● ϦΫΤετͷॲཧதʹ http Ͱ API ʹϦΫΤετ● ϓϩΩγͷΞοϓετϦʔϜΛಈతʹมߋಈతϧʔςΟϯά
28cookie ͷϑΟϧλϦϯάSection 628
29cookie ͷϑΟϧλϦϯά29͜ͷΜͷ͓ઌఔͷਤͷ...
3030՝● ಉ͡υϝΠϯ্ʹγϣοϓͱ WordPress ͕ଘࡏ͢ΔͨΊɺγϣοϓͷ cookie ΛWordPress ͔Βࢀরɺૢ࡞Ͱ͖ͯ͠·͏● WordPress ͷͬऔΓѱҙͷ͋ΔϓϥάΠϯ͕ଘࡏ͢ΔͱʹͳΔcookie ͷϑΟϧλϦϯά
3131ղܾͷΞϓϩʔν● Χϥʔϛʔγϣοϓͷ cookie ʹ໊લʹಛఆͷϓϨϑΟοΫΛ͚Δ● app-proxy Ͱ্هʹ֘͢Δ໊લͷ cookie cookie ϔομ set-cookie ϔομͱʹϑΟϧλ͢Δcookie ͷϑΟϧλϦϯά
3232ngx_mruby ϙΠϯτ
3333cookie ͷϑΟϧλϦϯάΞʔΩςΫνϟ
3434● ΞϓϦέʔγϣϯαʔόͷલ໘ʹஔͨ͠ngx_mruby Ͱ cookie ໊ͷϓϨϑΟοΫεΛண● Web ΞϓϦέʔγϣϯʹखΛೖΕΔඞཁͳ͠cookie ͷϑΟϧλϦϯά
3535● ϓϨϑΟοΫεͷ໊͍ͨલͷ cookie app-proxy ͰϑΟϧλ͠WordPress ͞ͳ͍● WordPress ͔ΒҙਤతʹϓϨϑΟοΫεΛ໊͚ͭͨલͰ set-cookie ϔομ͕ૹΒΕͯϒϩοΫcookie ͷϑΟϧλϦϯά
3636ngx_mruby Ͱղܾʂ● cookie ϔομΛؚΉϦΫΤετɺϨεϙϯε֤ϔομΛࢀরɺॻ͖ࠐΈͰ͖Δαϯϓϧίʔυ● https://github.com/yano3/kankara/tree/master/ngx_mruby/cookie_add_prefix● https://github.com/yano3/kankara/tree/master/ngx_mruby/cookie_filter_by_prefixcookie ͷϑΟϧλϦϯά
37·ͱΊSection 737
3838·ͱΊ2020ͷ ngx_mruby on Χϥʔϛʔγϣοϓ● ৽ͨʹ2ͭͷར༻ࣄྫΛհ○ ಈతϧʔςΟϯά○ cookie ϑΟϧλϦϯά● ࠓޙదࡐదॴͰ׆༻͍͖ͯ͠·͢ngx_mruby ศརʂ