Upgrade to Pro — share decks privately, control downloads, hide ads and more …

100行あったmod_rewirteを ngx_mrubyで書き換えた話

100行あったmod_rewirteを ngx_mrubyで書き換えた話

第5回ペパボテックカンファレンス〜インフラエンジニア大特集〜 で発表した資料です
http://pepabo.connpass.com/event/30348/

3f6af00e6779114f20bda021a28313c9?s=128

buty4649

May 14, 2016
Tweet

Transcript

  1. GMO Pepabo, Inc. Yuki Koya 2016/05/14 ୈ5ճϖύϘςοΫΧϯϑΝϨϯε ߦ͋ͬͨNPE@SFXJSUFΛ OHY@NSVCZͰॻ͖׵͑ͨ࿩

  2. ࣗݾ঺հ  ߴ୩༤و  ͜͏΍Ώ͏͖  ձࣾͰ͸ͬ͡ͺʔͱݺ͹Ε͍ͯΔ  !CVUZ 

    ೖࣾ೥ϲ݄  ٕज़෦Πϯϑϥάϧʔϓ  ओʹ+6(&.୲౰  γχΞΤϯδχΞ
  3. +6(&.

  4. ͓࿳ͼ

  5. ߦ͋ͬͨNPE@SFXJSUFΛ OHY@NSVCZͰॻ͖׵͑ͨ࿩

  6. ߦ͋ͬͨNPE@SFXJSUFΛ OHY@NSVCZͰॻ͖׵͑ͨ࿩ 

  7. ݱঢ়ͷߏ੒ͱ໰୊

  8. +6(&.ͷશମߏ੒  QPSUBM τοϓϖʔδ   +(ηοτ Ϣʔβຖͷϒϩά  

    8FCαʔόͱ%#αʔό NBTUFSTMBWF   όον  ಺෦ɺ֎෦࿈ܞ༻"1*  ސ٬؅ཧ  FUD
  9. 8FCαʔό աڈ Ω ϟ ο γ ϡ ᶃ ᶄ ᶅ

    ᶆ  /HJOY  "QBDIF  Ωϟογϡίϯτϩʔϧ  ϧʔςΟϯά  "QBDIF NPE@QIQ  1)1 ʴ
  10. 8FCαʔό ݱࡏ Ω ϟ ο γ ϡ ᶃ ᶄ ᶅ

    ᶆ  /HJOY  "QBDIF  Ωϟογϡίϯτϩʔϧ  ϧʔςΟϯά  1)1 QIQGQN
  11. ໰୊఺  ϧʔςΟϯάͷ௥Ճ͕ࠔ೉  NPE@SFXSJUFϧʔϧͷσόοά  ߏ੒͕΍΍ෳࡶ  /HJOYͱ"QBDIF͕ಉډ 

    "QBDIF͕ϘτϧωοΫ $,
  12. /HJOYʹ౷߹͠Α͏ͱͨ͠  NPE@SFXSJUF෦෼Λ/HJOYͰॻ͖ ׵͑Α͏ͱͨ͠  ݁ՌߦΛ௒͑ΔDPOpHʹʜ  JGจͷωετ͕Ͱ͖ͳ͍  ม਺Λ࢖͍ٖࣅతʹ࠶ݱ

     ݁Ռ௕͘ͳΔ
  13. Ұ෦Λॻ͖׵͑ͨ "QBDIF /HJOY ߦ ߦ

  14. "QBDIFΛ/HJOY ʹஔ͖׵͑ͯ΋ ݁ہϝϯςφϯε͕ Ͱ͖ͳ͍ઃఆϑΝΠϧ ʹͳͬͯ͠·͏

  15. Ͳ͏ͨ͠΋ͷ͔

  16. ͦ͏ͩOHY@NSVCZͩʂʂ

  17. OHY@NSVCZͱ͸  !NBUVNPUPS͕։ൃͨ͠/HJOY༻ ͷ֦ுϞδϡʔϧ  NSVCZΛ࢖੍ͬͯޚ͕Ͱ͖Δ  IUUQTHJUIVCDPNNBUTVNPUPSOHY@NSVCZ

  18. OHY@NSVCZͷಋೖ  OHY@NSVCZೖΓͷ/HJOYύοέʔδͷ ࡞੒͕ඞཁ  %ZOBNJD.PEVMFඇରԠ  NSVCZͷϏϧυ  DPOpHVSFΦϓγϣϯ΁ͷ௥Ճ

     !ITCU͕࡞ͬͨOHY@NSVCZQBDLBHF CVJMEFSΛ࢖͏ͱศར  IUUQTHJUIVCDPNITCUOHY@NSVCZQBDLBHFCVJMEFS
  19. OHY@NSVCZͷಋೖ  +6(&.Ͱ͸͔Β΁  όʔϯײΛग़͔ͨͬͨ͠  ʹ΋ରԠ͍ͯ͠Δ͜ͱΛ஌Βͳ͔ͬͨ  4VQQPSUFEOHJOY 

     ಛʹେ͖ͳ໰୊͸Ͱͳ͔ͬͨ
  20. OHY@NSVCZͷ࢖͍ํ  OHJOYDPOGʹσΟϨΫςΟϒ͕૿͑Δ  NSVCZ@DPOUFOU@IBOEMFS  NSVCZ@JOJU  NSVCZ@TFU 

    BOENPSF  IUUQTHJUIVCDPNNBUTVNPUPSOHY@NSVCZXJLJ%JSFDUJWFT
  21. OHY@NSVCZͷ࢖͍ํ  DBDIFΛ຤ඌʹ෇͚ΔͱεΫϦϓτΛ Ωϟογϡ͢Δ  ϝϞϦͷઅ໿࣮ߦ଎౓ͷ޲্  σΟϨΫςΟϒ໊ͷαϑΟοΫεʹ @DPEFΛ͚ͭΔͱεΫϦϓτΛΠϯϥΠ ϯͰॻ͚Δ

     ྫNSVCZ@TFUNSVCZ@TFU@DPEF
  22. NSVCZ@DPOUFOU@IBOEMFS  ίϯςϯπΛੜ੒͢Δ࣌ʹ࣮ߦ ʹΞΫηε͢ΔͱIFMMP͕ฦΔ

  23. NSVCZ@JOJU  ىಈ࣌ʹ౓͚࣮ͩߦ  ॳظԽॲཧͳͲΛߦͳ͏

  24. NSVCZ@TFU  εΫϦϓτͷ݁ՌΛม਺ʹ֨ೲ  OHJOYDPOGͷதͰ࢖༻Ͱ͖Δ ͭͷϗετ͔Βϥϯ μϜͰܾఆ CBDLFOEʹ֨ೲ

  25. NPE@SFXSJUFΛ ॻ͖׵͑Δ

  26. ॻ͖׵͑Δಈ࡞  ϦΫΤετ͕ FJEͰ͋Δ͔ʁ  ΩϟογϡϑΝΠϧ͸͋Δ͔ʁ  ྆ํΛຬͨͨ͠ΒΩϟογϡΛฦ͢  Έͨ͞ͳ͚Ε͹1)1΁

  27. ஔ׵ޙͷOHJOYDPOG ΩϟογϡΛฦ͔͢Ͳ͏͔ΛNSVCZͰ൑ఆ

  28. NSVCZεΫϦϓτ  ΫΤϦετϦϯάͷ൑ఆ  ΩϟογϡϑΝΠϧͷ༗ແ

  29. OHY@NSVCZ΁ஔ͖׵͑  OHY@NSVCZΛ࢖ͬͯNPE@SFXSJUF Λॻ͖׵͑Δ  ஔ׵ޙ͸શମͰߦ͘Β͍  ୹͘͢Δ͜ͱ͕໨తͰ͸ͳ͍  ϝϯςφϒϧʹ͢Δ

  30. ςετίʔυ  .JEEMFXBSFBTB$PEF  SVCZͷίʔυ͕ॻ͚Δͱ͍͏͜ͱ͸ ςετ΋ॻ͚Δ  ςετ͕͋ΔͳΒ$*΋ճͤΔ

  31. ςετϥΠϒϥϦ  JJKNSVCZNUFTUΛ࢖͏  NSVCZͰςετΛߦͳ͏ͨΊͷNSCHFNT  5FTU6OJUͬΆ͘ॻ͚Δ  IUUQTHJUIVCDPNJJKNSVCZNUFTU

  32. όΠφϦͷ༻ҙ  ຊ൪؀ڥ༻ͷNSVCZͱςετ؀ڥ༻ ͷNSVCZͷόΠφϦΛ෼͚Δ  ςετ؀ڥʹ͸NSVCZNUFTUΛ௥Ճ  .5FTU͕ఆٛ͞ΕΔ

  33. ςετίʔυ ςετ؀ڥ ຊ൪؀ڥ ؀ڥΛ൑ఆ

  34. ςετίʔυ  SBLFͷ࣮ߦ $*͕Ͱ͖ΔΑ͏ʹͳͬͨʂʂ

  35. ϋϚͬͨͱ͜Ζ

  36. ϋϚͬͨͱ͜Ζ  OHJOYDPOGͰఆ͍ٛͯ͠ͳ͍ม਺ʹ /HJOY7BSTFU͢ΔͱΤϥʔ ʹͳΔ

  37. ϋϚͬͨͱ͜Ζ GPPม਺ʹCBSΛ୅ೖ͠Α͏ͱ͍ͯ͠Δ͕ɺ OHJOYDPOG಺ͰGPP͕ఆٛ͞Ε͍ͯͳ͍ͷͰ ΤϥʔͱͳΔ ରࡦTFUNSVCZ@TFUͰࣄલʹఆ͓ٛͯ͘͠

  38. ϋϚͬͨͱ͜Ζ  NSVCZͷεΫϦϓτΛͲ͜·Ͱ෼ ׂ͢Ε͹Α͍͔Θ͔͍ͬͯͳ͍  ͭʹ·ͱΊΔ͜ͱ΋Ͱ͖Δ͠ɺ෼ ׂ͢Δ͜ͱ΋Ͱ͖Δ  ͭʹ·ͱΊΔͱڊେʹͳΔ 

    ෼ׂ͢Δͱ֤ϑΝΠϧʹఆ͕ٛॏෳ͢Δ
  39. ϋϚͬͨͱ͜Ζ  MPDBUJPOͰ͔͠ఆٛͰ͖ͳ͍σΟϨ ΫςΟϒΛଞͰ΋ఆٛͰ͖Δ  4ZOUBYΤϥʔʹͳΒͳ͍  13͢ΔͷͰͦͷ͏ͪ௚Δ͸ͣ

  40. ONSCͷ͝঺հ  OHY@NSVCZ͸ಈ࡞֬ೝ͕େม  OHJOYΛىಈͯ͠63-Λୟ͔ͳ͍ͱ֬ೝͰ͖ͳ͍  $-*ͰϦΫΤετΛγϛϡϨʔτ  ݱঢ়Ұ෦ͷػೳͷΈରԠ 

    IUUQTHJUIVCDPNCVUZONSC
  41. ONSCͷ࣮ߦྫ  FYFDαϒίϚϯυ  Ҿ਺ʹεΫϦϓτͱ63-Λࢦఆ  Α͠ͳʹ/HJOY3FRVFTUΛੜ੒ UFTUSC ࣮ߦྫ

  42. ·ͱΊ

  43. ·ͱΊ  OHY@NSVCZΛ࢖͏͜ͱͰϓϩάϥ Ϛϒϧʹઃఆ͕͔͚Δ  ෳࡶͳϧʔϧ΋දݱͰ͖Δ  ςετ͕͔͚ΔͷͰ$*͕ճͤΔ  ༰қʹಋೖͰ͖Δ

  44. ࠓޙ  ΞϓϦέʔγϣϯͰϧʔςΟϯά͠ ͨ΄͏͕͍͍ͷ͔ͳʁ  ϑϨʔϜϫʔΫͷಋೖ  Πϯϑϥίʔυ͔Βͷ෼཭  OHY@NSVCZͷ··Ͱ΋͍͍͔΋

    ೰Έத
  45. ͝੩ௌ͋Γ͕ͱ͏͝ ͍͟·ͨ͠