Slide 1

Slide 1 text

1 Χϥʔϛʔγϣοϓͱ ngx_mruby 2020 2020-06-24 ϖύϘ EC ςοΫΧϯϑΝϨϯε ECࣄۀ෦ Χϥʔϛʔγϣοϓάϧʔϓ αʔϏεج൫νʔϜ ໼໺ ఩ฏ @yano3

Slide 2

Slide 2 text

2 2 ໼໺ ఩ฏ Yano Teppei @yano3 ʢ΍ͷ͞Μʣ ECࣄۀ෦ Χϥʔϛʔγϣοϓάϧʔϓ αʔϏεج൫νʔϜ ● https://twitter.com/yano3 ● https://github.com/yano3 ⛷ ઇࢁ͕޷͖ ❄ ❄ ❄

Slide 3

Slide 3 text

3 ngx_mruby Section 1 3

Slide 4

Slide 4 text

4 ngx_mruby ͱ͸ A Fast and Memory-Efficient Nginx Extension Mechanism Scripting with mruby. 4

Slide 5

Slide 5 text

5 ngx_mruby ͱ͸ 5 ● mruby ͸૊ΈࠐΈ޲͚ͷܰྔͳ Ruby ࣮૷ ● Ruby εΫϦϓτͰ nginx Λ֦ுՄೳ ● ྨࣅͷ΋ͷͱͯ͠ lua-nginx-module (OpenResty)

Slide 6

Slide 6 text

6 ࠓ·Ͱͷ ngx_mruby ར༻ࣄྫ Section 2 6

Slide 7

Slide 7 text

7 ࠓ·Ͱͷ ngx_mruby ར༻ࣄྫ ಠࣗυϝΠϯৗ࣌SSLͷಈతূ໌ॻಡΈࠐΈ ৗ࣌SSL https://shop-pro.jp/ssl/ ΞʔΩςΫνϟ https://speakerdeck.com/hfm/gmo-hoscon-2016 ʢ΄΅ಉ͡ΞʔΩςΫνϟΛ঺հͨ͠ࢿྉʣ 7

Slide 8

Slide 8 text

8 ৽ͨͳ ngx_mruby ར༻ࣄྫ Section 3 8

Slide 9

Slide 9 text

9 ৽ͨͳ ngx_mruby ར༻ࣄྫ ͱɺͦͷલʹ... ngx_mruby Λ࢖࣮ͬͨ૷ͷલఏͱͳͬͨ৽ػೳ ΧϥʔϛʔWPΦϓγϣϯ ʹ͍ͭͯ 9

Slide 10

Slide 10 text

10 ΧϥʔϛʔWPΦϓγϣϯ Section 4 10

Slide 11

Slide 11 text

11 ΧϥʔϛʔWPΦϓγϣϯ ΧϥʔϛʔΞϓϦετΞ͔ΒΠϯετʔϧ https://app.shop-pro.jp/apps/74 11 ΧϥʔϛʔWPΦϓγϣϯͱ͸

Slide 12

Slide 12 text

12 12 ΧϥʔϛʔWPΦϓγϣϯͱ͸ γϣοϓͷυϝΠϯ https://shop.example.com ͷԼͷύεʹ WordPress Λදࣔ https://shop.example.com/apps/note/ কདྷ͸ผͷύεͰଞͷ Web ΞϓϦͷఏڙ͢Δ͜ ͱ΋ߟྀͨ͠ઃܭ ΧϥʔϛʔWPΦϓγϣϯ

Slide 13

Slide 13 text

13 13 ΞʔΩςΫνϟ ΧϥʔϛʔWPΦϓγϣϯ

Slide 14

Slide 14 text

14 14 ΞʔΩςΫνϟ ௨ৗͷγϣοϓΛදࣔ ΧϥʔϛʔWPΦϓγϣϯ

Slide 15

Slide 15 text

15 15 ΞʔΩςΫνϟ ● /apps ΛؚΉύε͸ app-proxy ʹϓ ϩΩγ ● app-proxy ͸͞ΒʹύεʹΑͬͯ ΞοϓετϦʔϜͷ Web ΞϓϦέʔ γϣϯʹϓϩΩγʢ /note ͳΒϩϦ ϙοϓʂϚωʔδυΫϥ΢υͷΤϯ υϙΠϯτ΁※ʣ ※ WordPress Λىಈ͢ΔόοΫΤϯυͱͯ͠ϩϦϙοϓʂ ϚωʔδυΫϥ΢υΛར༻͍ͯ͠·͢ɻ https://note.com/mclolipopjp/n/ncd713843e4f2 ΧϥʔϛʔWPΦϓγϣϯ

Slide 16

Slide 16 text

16 16 ΞʔΩςΫνϟ ● ϩϦϙοϓʂϚωʔδυΫϥ΢υଆ Ͱ host ϔομʹΑΓͦΕͧΕͷ WordPress ʹϓϩΩγ ΧϥʔϛʔWPΦϓγϣϯ

Slide 17

Slide 17 text

17 17 ngx_mruby ͕ొ৔͢Δ2ͭͷϙΠϯτ ● ಈతϧʔςΟϯά ● cookie ͷϑΟϧλϦϯά ΧϥʔϛʔWPΦϓγϣϯ

Slide 18

Slide 18 text

18 ಈతϧʔςΟϯά Section 5 18

Slide 19

Slide 19 text

19 ಈతϧʔςΟϯά 19 ͜ͷ΁Μͷ͓࿩ ઌఔͷਤͷ...

Slide 20

Slide 20 text

20 20 ՝୊ ● γϣοϓʢͷυϝΠϯʣͱύεʹΑͬͯҟͳ ΔΞοϓετϦʔϜʹϓϩΩγ͢Δ ● ΧϥʔϛʔWPΦϓγϣϯΛ࢖͍ͬͯͳ͍ γϣοϓ͸ϓϩΩγ͠ͳ͍ʢ404ʣ ಈతϧʔςΟϯά

Slide 21

Slide 21 text

21 21 ΞϓϦετΞ͸ API Λհͯ͠Πϯετʔϧ৘ใΛ࡞੒ ಈతϧʔςΟϯά

Slide 22

Slide 22 text

22 22 WPΦϓγϣϯͷ Web ΞϓϦ͸ API ͔Βγϣοϓ৘ใΛऔಘ͠... ಈతϧʔςΟϯά

Slide 23

Slide 23 text

23 23 γϣοϓͷυϝΠϯͱඥ෇͍ͨ WordPress Λ࡞੒ ಈతϧʔςΟϯά

Slide 24

Slide 24 text

24 24 ngx_mruby ϙΠϯτ

Slide 25

Slide 25 text

25 25 app-proxy ্ͷ ngx_mruby ͸υϝΠϯͱύε͔ΒϓϩΩγઌΛฦ͢ API ʹϦΫΤετ ಈతϧʔςΟϯά

Slide 26

Slide 26 text

26 26 ngx_mruby ʹΑΓϓϩΩγઌʹಈతʹΞοϓετϦʔϜΛઃఆ ಈతϧʔςΟϯά

Slide 27

Slide 27 text

27 27 ngx_mruby Ͱղܾʂ ● ϦΫΤετͷॲཧதʹ http Ͱ API ʹϦΫΤε τ ● ϓϩΩγͷΞοϓετϦʔϜΛಈతʹมߋ ಈతϧʔςΟϯά

Slide 28

Slide 28 text

28 cookie ͷ ϑΟϧλϦϯά Section 6 28

Slide 29

Slide 29 text

29 cookie ͷϑΟϧλϦϯά 29 ͜ͷ΁Μͷ͓࿩ ઌఔͷਤͷ...

Slide 30

Slide 30 text

30 30 ՝୊ ● ಉ͡υϝΠϯ্ʹγϣοϓͱ WordPress ͕ଘ ࡏ͢ΔͨΊɺγϣοϓͷ cookie Λ WordPress ͔Βࢀরɺૢ࡞Ͱ͖ͯ͠·͏ ● WordPress ͷ৐ͬऔΓ΍ѱҙͷ͋ΔϓϥάΠ ϯ͕ଘࡏ͢Δͱ໰୊ʹͳΔ cookie ͷϑΟϧλϦϯά

Slide 31

Slide 31 text

31 31 ղܾͷΞϓϩʔν ● Χϥʔϛʔγϣοϓͷ cookie ʹ͸໊લʹಛఆ ͷϓϨϑΟοΫΛ෇͚Δ ● app-proxy Ͱ্هʹ֘౰͢Δ໊લͷ cookie ͸ cookie ϔομ set-cookie ϔομͱ΋ʹϑΟ ϧλ͢Δ cookie ͷϑΟϧλϦϯά

Slide 32

Slide 32 text

32 32 ngx_mruby ϙΠϯτ

Slide 33

Slide 33 text

33 33 cookie ͷϑΟϧλϦϯά ΞʔΩςΫνϟ

Slide 34

Slide 34 text

34 34 ● ΞϓϦέʔγϣϯαʔό ͷલ໘ʹ഑ஔͨ͠ ngx_mruby Ͱ cookie ໊ͷ ϓϨϑΟοΫεΛண୤ ● Web ΞϓϦέʔγϣϯʹ ͸खΛೖΕΔඞཁͳ͠ cookie ͷϑΟϧλϦϯά

Slide 35

Slide 35 text

35 35 ● ϓϨϑΟοΫεͷ෇͍ͨ ໊લͷ cookie ͸ app- proxy ͰϑΟϧλ͠ WordPress ΁౉͞ͳ͍ ● WordPress ͔Βҙਤతʹ ϓϨϑΟοΫεΛ͚ͭͨ ໊લͰ set-cookie ϔομ ͕ૹΒΕͯ΋ϒϩοΫ cookie ͷϑΟϧλϦϯά

Slide 36

Slide 36 text

36 36 ngx_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_prefix cookie ͷϑΟϧλϦϯά

Slide 37

Slide 37 text

37 ·ͱΊ Section 7 37

Slide 38

Slide 38 text

38 38 ·ͱΊ 2020೥ͷ ngx_mruby on Χϥʔϛʔγϣοϓ ● ৽ͨʹ2ͭͷར༻ࣄྫΛ঺հ ○ ಈతϧʔςΟϯά ○ cookie ϑΟϧλϦϯά ● ࠓޙ΋దࡐదॴͰ׆༻͍͖ͯ͠·͢ ngx_mruby ศརʂ