$30 off During Our Annual Pro Sale. View Details »

PEPABO EC tech conference ngx_mruby 2020

PEPABO EC tech conference ngx_mruby 2020

Teppei Yano

June 24, 2020
Tweet

More Decks by Teppei Yano

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 3
    ngx_mruby
    Section 1
    3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. 24
    24
    ngx_mruby ϙΠϯτ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. 32
    32
    ngx_mruby ϙΠϯτ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. 37
    ·ͱΊ
    Section 7
    37

    View Slide

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

    View Slide