рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗрдЖрдореНрд╣реА рдкрд░рд┐рд╖рджреЗрддреАрд▓ рдЕрд╣рд╡рд╛рд▓рд╛рдЪрд╛ рдЙрддрд╛рд░рд╛ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЛ HighLoad++ 2016, рдЬреЛ рдЧреЗрд▓реНрдпрд╛ рд╡рд░реНрд╖реА 7-8 рдиреЛрд╡реНрд╣реЗрдВрдмрд░ рд░реЛрдЬреА рдореЙрд╕реНрдХреЛрдЬрд╡рд│реАрд▓ рд╕реНрдХреЛрд▓реНрдХреЛрд╡реНрд╣реЛ рдпреЗрдереЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рд╣реЛрддрд╛. рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдкреНрд░реЛрдЯрд╛рд╕реЛрд╡реНрд╣ OpenResty рдЖрдгрд┐ Lua рд╕рд╣ NGINX рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА рддреЗ рд╕рд╛рдВрдЧрддреЗ.

рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░, рдорд╛рдЭреЗ рдирд╛рд╡ рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдкреНрд░реЛрдЯрд╛рд╕реЛрд╡реНрд╣ рдЖрд╣реЗ, рдореА рд╕рдорд╛рдВрддрд░рд╛рдВрд╕рд╛рдареА рдХрд╛рдо рдХрд░рддреЛ. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рдЭреНрдпрд╛рдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ рд╕рд╛рдВрдЧреЗрди. рдореА рдорд╛рдЭреНрдпрд╛ рдЖрдпреБрд╖реНрдпрд╛рддреАрд▓ рддреАрди рдЪрддреБрд░реНрдерд╛рдВрд╢ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдд рдШрд╛рд▓рд╡рддреЛ. рдореА рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрдерд╛рдиреЗ рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрдирд▓реЛ: рдорд▓рд╛ рдХрдзреАрдХрдзреА рдорд╛рдЭреНрдпрд╛ рд╕реНрд╡рдкреНрдирд╛рдВрдордзреНрдпреЗ рдХреЛрдб рджрд┐рд╕рддреЛ. рдЬреАрд╡рдирд╛рдЪрд╛ рдПрдХ рдЪрддреБрд░реНрдерд╛рдВрд╢ рднрд╛рдЧ рдореНрд╣рдгрдЬреЗ рдФрджреНрдпреЛрдЧрд┐рдХ рд╡рд┐рдХрд╛рд╕, рд▓реЗрдЦрди рдХреЛрдб рдЬреЗ рдереЗрдЯ рдЙрддреНрдкрд╛рджрдирд╛рдд рдЬрд╛рддреЗ. рдХреЛрдб рдЬреЛ рддреБрдордЪреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рд╡рд╛рдкрд░рддрд╛рдд рдкрдг рдорд╛рд╣реАрдд рдирд╛рд╣реАрдд.

рддреЗ рдХрд┐рддреА рд╡рд╛рдИрдЯ рд╣реЛрддреЗ рд╣реЗ рд╕рд╛рдВрдЧрдгреНрдпрд╛рд╕рд╛рдареА. рдЬреЗрд╡реНрд╣рд╛ рдореА рдереЛрдбрд╛ рдХрдирд┐рд╖реНрда рд╣реЛрддреЛ рддреЗрд╡реНрд╣рд╛ рдореА рдЖрдд рдЖрд▓реЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдиреА рдорд▓рд╛ рд╣реЗ рджреЛрди рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рджрд┐рд▓реЗ. рд╣реЗ рдЖрддрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рд╣рд╛рдпрд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЗрдереЗ рдЖрд╣реЗ. рдореА рдХреЙрдиреНрдлрд░рдиреНрд╕рдордзреНрдпреЗ рдЧреЗрд▓реЛ рдЖрдгрд┐ рд╡рд┐рдЪрд╛рд░рд▓реЗ: тАЬрдореБрд▓рд╛рдВрдиреЛ, рдорд▓рд╛ рд╕рд╛рдВрдЧрд╛, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдореЛрдард╛ рдбреЗрдЯрд╛ рдЖрд╣реЗ рдХрд╛, рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЫрд╛рди рдЖрд╣реЗ рдХрд╛? рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХрд┐рддреА рддрд│ рдЖрд╣реЗрдд? рддреНрдпрд╛рдВрдиреА рдорд▓рд╛ рдЙрддреНрддрд░ рджрд┐рд▓реЗ: "рдЖрдордЪреНрдпрд╛рдХрдбреЗ 100 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдЖрд╣реЗрдд!" рдореА рдореНрд╣рдгрд╛рд▓реЛ: "рдЫрд╛рди, 100 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ!" рдЖрдгрд┐ рдореА рд╕реНрд╡рдд: рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдХреА рдирд┐рд░реНрд╡рд┐рдХрд╛рд░ рдЪреЗрд╣рд░рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рддрдкрдгреЗ рдХрд╕рд╛ рд╡рд╛рдЪрд╡рд╛рдпрдЪрд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯрддреЗ, рд╣реЛрдп, рдореБрд▓реЗ рдЫрд╛рди рдЖрд╣реЗрдд рдЖрдгрд┐ рдордЧ рддреБрдореНрд╣реА рдкрд░рдд рдпрд╛ рдЖрдгрд┐ рдпрд╛ рдорд▓реНрдЯреА-рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рдЯрд┐рдВрдХрд░ рдХрд░рд╛. рдЖрдгрд┐ рд╣реЗ рдПрдХ рдХрдирд┐рд╖реНрда рдЖрд╣реЗ. рдЖрдкрдг рдХрд▓реНрдкрдирд╛ рдХрд░реВ рд╢рдХрддрд╛ рдХреА рддреЛ рдХрд┐рддреА рд╣рд┐рдЯ рдЖрд╣реЗ?

рдорд▓рд╛ 20 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗрдд. рдХрд╛рдорд╛рдЪреНрдпрд╛ рдУрдШрд╛рдд рдорд▓рд╛ рд╣реЗрдЪ рдХрд│рд╛рдпрдЪрдВ. рддреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрд░реНрд▓рд╛рдВрдЧрдордзреНрдпреЗ, рд╕реАрдордзреНрдпреЗ, рд╕реА++рдордзреНрдпреЗ, рд▓реБрдЖрдордзреНрдпреЗ, рдкрд╛рдпрдердирдордзреНрдпреЗ, рд░реБрдмреАрдордзреНрдпреЗ, рдЖрдгрдЦреА рдХрд╢рд╛рдордзреНрдпреЗ рдХреЛрдб рджреЗрддрд╛рдд рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╕рд░реНрд╡ рдХрд╛рдкрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдорд▓рд╛ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдиреЗрдордХрд╛ рдЖрдХрдбрд╛ рдХрд╛рдврдгреЗ рд╢рдХреНрдп рдирд╡реНрд╣рддреЗ, рдкрдг рдХреБрдареЗрддрд░реА 20 рдЪреНрдпрд╛ рдЖрд╕рдкрд╛рд╕ рд╕рдВрдЦреНрдпрд╛ рд╣рд░рд╡рд▓реА рд╣реЛрддреА.

рд╕рдорд╛рдВрддрд░ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рдЖрдкрдг рдХрд╛рдп рдХрд░рддреЛ рд╣реЗ рдЗрдерд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЕрд╕рд▓реНрдпрд╛рдореБрд│реЗ рдЖрдкрдг рдХрд┐рддреА рдорд╕реНрдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдХрд╛рдп рдХрд░рддреЛ рдпрд╛рдмрджреНрджрд▓ рдореА рдмреЛрд▓рдгрд╛рд░ рдирд╛рд╣реА. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рд╕рд╛рдВрдЧреЗрди рдХреА рдЖрдордЪреА рдЬрдЧрднрд░рд╛рдд 13 рдХрд╛рд░реНрдпрд╛рд▓рдпреЗ рдЖрд╣реЗрдд, 300 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдХрд░реНрдордЪрд╛рд░реА рдЖрд╣реЗрдд, рдореЙрд╕реНрдХреЛ, рдЯреЕрд▓рд┐рди рдЖрдгрд┐ рдорд╛рд▓реНрдЯрд╛ рдпреЗрдереЗ рд╡рд┐рдХрд╛рд╕ рдЖрд╣реЗ. рдЬрд░ рддреБрдордЪреА рдЗрдЪреНрдЫрд╛ рдЕрд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рдорд╛рд▓реНрдЯрд╛рд▓рд╛ рдШреЗрдКрди рдЬрд╛рдК рд╢рдХрддрд╛, рдЬрд░ рд╣рд┐рд╡рд╛рд│реНрдпрд╛рдд рдердВрдбреА рдЕрд╕реЗрд▓ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреА рдкрд╛рда рдЧрд░рдо рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЕрд╕реЗрд▓.

рд╡рд┐рд╢реЗрд╖рддрдГ, рдЖрдордЪрд╛ рд╡рд┐рднрд╛рдЧ рдкрд╛рдпрдерди 2 рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЛ. рдЖрдореНрд╣реА рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдлреЕрд╢рдиреЗрдмрд▓ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕рд╛рджрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│ рдирд╛рд╣реА, рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрд░рд╛рд╕ рд╕рд╣рди рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЬреЕрдВрдЧреЛ рдЖрд╣реЗ, рдХрд╛рд░рдг рддреНрдпрд╛рдд рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдореНрд╣реА рдЬрд╛рд╕реНрдд рдШреЗрддрд▓реЗ рдЖрдгрд┐ рддреЗ рдлреЗрдХреВрди рджрд┐рд▓реЗ. рддрд╕реЗрдЪ MySQL, Redis рдЖрдгрд┐ NGINX. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЗрддрд░рд╣реА рдЦреВрдк рдЫрд╛рди рдЧреЛрд╖реНрдЯреА рдЖрд╣реЗрдд. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдореЛрдВрдЧреЛрдбреАрдмреА рдЖрд╣реЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд╕реЗ рдзрд╛рд╡рдд рдЖрд╣реЗрдд, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА - рдкрд░рдВрддреБ рддреЗ рдорд╛рдЭреЗ рдирд╛рд╣реА рдЖрдгрд┐ рдореА рддреЗ рдХрд░рдд рдирд╛рд╣реА.

OpenResty

рдореА рдорд╛рдЭреНрдпрд╛рдмрджреНрджрд▓ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ. рдЖрдЬ рдореА рдХрд╢рд╛рдмрджреНрджрд▓ рдмреЛрд▓рдгрд╛рд░ рдЖрд╣реЗ рддреЗ рдкрд╛рд╣реВрдпрд╛:

  • рдУрдкрдирд░реЗрд╕реНрдЯреА рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╢рд╛рд╕рд╣ рдЦрд╛рд▓реНрд▓реЗ рдЬрд╛рддреЗ?
  • рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкрд╛рдпрдерди, рдиреЛрдбрдЬреЗрдПрд╕, рдкреАрдПрдЪрдкреА, рдЧреЛ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдЖрдирдВрджреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрддрд░ рдЫрд╛рди рд╕рд╛рдордЧреНрд░реА рдЕрд╕рддрд╛рдирд╛ рдЪрд╛рдХ рдкреБрдиреНрд╣рд╛ рдХрд╛ рд╢реЛрдзрд╛рдпрдЪреЗ?
  • рдЖрдгрд┐ рдХрд╛рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдгреЗ. рдорд▓рд╛ рдЕрд╣рд╡рд╛рд▓ рдЦреВрдк рдХрдореА рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛, рдХрд╛рд░рдг рдорд▓рд╛ рддреЗ 3,5 рддрд╛рд╕ рдорд┐рд│рд╛рд▓реЗ, рдореНрд╣рдгреВрди рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рдЕрд╕рддреАрд▓.

OpenResty NGINX рдЖрд╣реЗ. рддреНрдпрд╛рдЪреЗ рдЖрднрд╛рд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдкреВрд░реНрдг рд╡рд╛рдв рдЭрд╛рд▓реЗрд▓рд╛ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ, рдЬреЛ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ, рддреЛ рдЬрд▓рдж рдХрд╛рд░реНрдп рдХрд░рддреЛ. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рдЖрдкрд▓реНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХрдЬрдг рдЙрддреНрдкрд╛рджрдирд╛рдд NGINX рд╡рд╛рдкрд░рддрд╛рдд. рддреБрдореНрд╣рд╛ рд╕рд░реНрд╡рд╛рдВрдирд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА рддреЛ рд╡реЗрдЧрд╡рд╛рди рдЖрдгрд┐ рдорд╕реНрдд рдЖрд╣реЗ. рддреНрдпрд╛рдВрдиреА рддреНрдпрд╛рдд рдХреВрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ I/O рдмрдирд╡рд▓реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдкрд╛рдпрдердирдордзреНрдпреЗ рдЧреЗрд╡реНрд╣реЗрдВрдЯ рдЬреНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рд╛рдпрдХрд▓ рдЪрд╛рд▓рд╡рд▓реЗ рд╣реЛрддреЗ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рд╕рд╛рдпрдХрд▓ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рдЧреЗрд╡реНрд╣реЗрдВрдЯ рдЫрд╛рди, рдорд╕реНрдд рдЖрд╣реЗ, рдкрдг рдЬрд░ рддреБрдореНрд╣реА рд╕реА-рдХреЛрдб рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрдгрд┐ рдЧреЗрд╡реНрд╣реЗрдВрдЯрдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдЪреВрдХ рдЭрд╛рд▓реА, рддрд░ рддреБрдореНрд╣реА рддреЗ рдбреАрдмрдЧ рдХрд░рдгреНрдпрд╛рд╕ рд╡реЗрдбреЗ рд╡реНрд╣рд╛рд▓. рдорд▓рд╛ рдЕрдиреБрднрд╡ рд╣реЛрддрд╛: рддрд┐рдереЗ рдХрд╛рдп рдЪреВрдХ рдЭрд╛рд▓реА рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдг рджреЛрди рджрд┐рд╡рд╕ рд▓рд╛рдЧрд▓реЗ. рдЬрд░ рдХреЛрдгреА рдЖрдзреА рдХрд╛рд╣реА рдЖрдард╡рдбреЗ рдЦреЛрджрд▓реЗ рдирд╕рддреЗ, рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдкрдбрд▓реА рдирд╕рддреА, рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрдгрд┐ Google рд▓рд╛ рддреЗ рд╕рд╛рдкрдбрд▓реЗ рдирд╛рд╣реА, рддрд░ рдЖрдкрдг рдкреВрд░реНрдгрдкрдгреЗ рд╡реЗрдбреЗ рдЭрд╛рд▓реЛ рдЕрд╕рддреЛ.

NGINX рдЖрдзреАрдЪ рдХреЕрд╢рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХрд░рддреЗ. рд╣реЗ рдорд╛рдирд╡реА рд░реАрддреАрдиреЗ рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХрд╛рд│рдЬреА рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдЬреЗрдгреЗрдХрд░реВрди рдЖрдкрдг рдХреБрдареЗрддрд░реА рдзреАрдореЗ рд╣реЛрдК рдирдпреЗ, рдЬреЗрдгреЗрдХрд░реВрди рдЖрдкрдг рдХреБрдареЗрддрд░реА рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЧрдорд╛рд╡реВ рдирдпреЗ. Nginx рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рдШреНрдпрд╛рдпрдЪреЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА - WSGI, PHP-FPM, Gunicorn, Unicorn. Nginx рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдкреНрд░рд╢рд╛рд╕рдХрд╛рдВрдирд╛ рджрд┐рд▓реЗ, рддреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╣ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ. Nginx рд╕рдВрд░рдЪрд┐рдд рдорд╛рд░реНрдЧрд╛рдиреЗ рд╡рд┐рдирдВрддреНрдпрд╛ рд╣рд╛рддрд╛рд│рддреЗ. рдпрд╛рдмрджреНрджрд▓ рдореА рдереЛрдбреНрдпрд╛ рд╡реЗрд│рд╛рдиреЗ рдмреЛрд▓реЗрди. рдереЛрдбрдХреНрдпрд╛рдд, рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдЯрдкреНрдкрд╛ рдЕрд╕рддреЛ рдЬреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рдиреБрдХрддреАрдЪ рд╡рд┐рдирдВрддреА рд╕реНрд╡реАрдХрд╛рд░рд▓реА, рдХреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╕рд╛рдордЧреНрд░реА рджрд┐рд▓реА.

Nginx рдЫрд╛рди рдЖрд╣реЗ, рдкрд░рдВрддреБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ: рддреА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рд╣реЗ рдЕрд╕реВрдирд╣реА, рдХреЙрдиреНрдлрд┐рдЧрдордзреНрдпреЗ рдврдХрд▓рд▓реЗрд▓реНрдпрд╛ рддреНрдпрд╛ рд╕рд░реНрд╡ рдЫрд╛рди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рддреЗ рдкреБрд░реЗрд╕реЗ рд▓рд╡рдЪрд┐рдХ рдирд╛рд╣реА. рд╣реА рд╢рдХреНрддреА рдкреБрд░реЗрд╢реА рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рддрд╛рдУрдмрд╛рдУрдЪреНрдпрд╛ рдореБрд▓рд╛рдВрдиреА рдПрдХреЗрдХрд╛рд│реА, рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд╕реБрдорд╛рд░реЗ рдЖрда рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА, рддреНрдпрд╛рдд рд▓реБрдЖ рдмрд╛рдВрдзрд▓реЗ. рддреЛ рдХрд╛рдп рджреЗрддреЛ?

  • рдЖрдХрд╛рд░. рддреЗ рд▓рд╣рд╛рди рдЖрд╣реЗ. LuaJIT рдХреБрдареЗрддрд░реА рд╕реБрдорд╛рд░реЗ 100-200 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯреНрд╕ рдореЗрдорд░реА рдУрд╡реНрд╣рд░рд╣реЗрдб рдЖрдгрд┐ рдХрд┐рдорд╛рди рдХрд╛рдордЧрд┐рд░реА рдУрд╡реНрд╣рд░рд╣реЗрдб рджреЗрддреЗ.
  • рдЧрддреА. LuaJIT рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдмрд░реНтАНрдпрд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ C рдЪреНрдпрд╛ рдЬрд╡рд│ рдЖрд╣реЗ, рдХрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ рддреЛ Java рдХрдбреЗ рд╣рд░рддреЛ, рдХрд╛рд╣реАрдВрдордзреНрдпреЗ рддреЛ рддреНрдпрд╛рд▓рд╛ рдорд╛рдЧреЗ рдЯрд╛рдХрддреЛ. рдХрд╛рд╣реА рдХрд╛рд│рд╛рд╕рд╛рдареА, рддреЗ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ, рдЙрддреНрдХреГрд╖реНрдЯ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдорд╛рдирд▓реЗ рдЧреЗрд▓реЗ. рдЖрддрд╛ рдердВрдб рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рддреЗ рдЦреВрдк рдЬрдб рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдорд╛рди V8. рдХрд╛рд╣реА JS рдЗрдВрдЯрд░рдкреНрд░реАрдЯрд░ рдЖрдгрд┐ Java HotSpot рдХрд╛рд╣реА рдмрд┐рдВрджреВрдВрд╡рд░ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рддрд░реАрд╣реА рдХрд╛рд╣реА рдард┐рдХрд╛рдгреА рдЧрдорд╛рд╡рддрд╛рдд.
  • рд╢рд┐рдХрд╛рдпрд▓рд╛ рд╕реЛрдкреЗ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкрд░реНрд▓ рдХреЛрдбрдмреЗрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрдгрд┐ рддреБрдореНрд╣реА рдмреБрдХрд┐рдВрдЧ рдХрд░рдд рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд╛рдкрдбрдгрд╛рд░ рдирд╛рд╣реАрдд. рддреЗ рддреЗрдереЗ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рддреЗ рд╕рд░реНрд╡ рдХрд╛рдвреВрди рдШреЗрддрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╢рд┐рдХрд╡рдгреЗ рд▓рд╛рдВрдм рдЖрдгрд┐ рдХрдареАрдг рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрддрд░ рдХрд╢рд╛рд╕рд╛рдареА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣рд╡реЗ рдЕрд╕рддреАрд▓ рддрд░ рддреНрдпрд╛рдВрдирд╛ рдкреБрдиреНрд╣рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдВрд╡рд╛ рд╢реЛрдзрд▓реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рд▓реБрдЖрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ. рд▓реБрдЖ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХрдирд┐рд╖реНрда рд╡реНрдпрдХреНрддреАрд▓рд╛ рддреАрди рджрд┐рд╡рд╕рд╛рдВрдд рд╢рд┐рдХрддрд╛ рдпреЗрддреЗ. рд╣реЗ рд╕рдордЬрдгреНрдпрд╛рд╕рд╛рдареА рдорд▓рд╛ рд╕реБрдорд╛рд░реЗ рджреЛрди рддрд╛рд╕ рд▓рд╛рдЧрд▓реЗ. рджреЛрди рддрд╛рд╕рд╛рдВрдирдВрддрд░, рдореА рдЖрдзреАрдЪ рдЙрддреНрдкрд╛рджрдирд╛рдд рдХреЛрдб рд▓рд┐рд╣рд┐рдд рд╣реЛрддреЛ. рд╕реБрдорд╛рд░реЗ рдПрдХ рдЖрдард╡рдбреНрдпрд╛рдирдВрддрд░, рддреЛ рдереЗрдЯ рдЙрддреНрдкрд╛рджрдирд╛рд╡рд░ рдЧреЗрд▓рд╛ рдЖрдгрд┐ рдирд┐рдШреВрди рдЧреЗрд▓рд╛.

рдкрд░рд┐рдгрд╛рдореА, рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЗрдереЗ рдЦреВрдк рдХрд╛рд╣реА рдЖрд╣реЗ. OpenResty рдиреЗ luash рдЖрдгрд┐ engins рдпрд╛ рджреЛрдиреНрд╣реА рдореЙрдбреНрдпреВрд▓реНрд╕рдЪрд╛ рд╕рдореВрд╣ рдПрдХрддреНрд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рддрдпрд╛рд░ рдЖрд╣реЗ - рддреИрдирд╛рдд рдЖрдгрд┐ рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗ.

рдЙрджрд╛рд╣рд░рдгреЗ

рдЧрд╛рдгреНрдпрд╛рдЪреЗ рдмреЛрд▓ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗрдд, рдЪрд▓рд╛ рд╕рдВрд╣рд┐рддреЗрдХрдбреЗ рдЬрд╛рдКрдпрд╛. рд╣реЗ рдереЛрдбреЗ рд╣реЕрд▓реЛ рд╡рд░реНрд▓реНрдб рдЖрд╣реЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рддреЗрдереЗ рдХрд╛рдп рдЖрд╣реЗ? рд╣реЗ рдЗрдВрдЬрд┐рдирдЪреЗ рд╕реНрдерд╛рди рдЖрд╣реЗ. рдЖрдореНрд╣реА рдХрд╛рд│рдЬреА рдХрд░реВ рдирдХрд╛, рдЖрдореНрд╣реА рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд░рд╛рдЙрдЯрд┐рдВрдЧ рд▓рд┐рд╣рд┐рдд рдирд╛рд╣реА, рдЖрдореНрд╣реА рдХрд╛рд╣реА рд░реЗрдбреАрдореЗрдб рдШреЗрдд рдирд╛рд╣реА - рдЖрдордЪреНрдпрд╛рдХрдбреЗ рддреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ NGINX рдордзреНрдпреЗ рдЖрд╣реЗ, рдЖрдореНрд╣реА рдЪрд╛рдВрдЧрд▓реЗ рдЖрдгрд┐ рдЖрд│рд╢реАрдкрдгреЗ рдЬрдЧрддреЛ.

content_by_lua_block рд╣рд╛ рдПрдХ рдмреНрд▓реЙрдХ рдЖрд╣реЗ рдЬреЛ рдореНрд╣рдгрддреЛ рдХреА рдЖрдореНрд╣реА рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рд╕рд╛рдордЧреНрд░реА рджреЗрдд тАЛтАЛрдЖрд╣реЛрдд. рдЖрдореНрд╣реА рдЗрдВрдЬрд┐рди рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдШреЗрддреЛ remote_addr рдЖрдгрд┐ рддреНрдпрд╛рдд рд╕рд░рдХрд╡рд╛ string.format. рд╣реЗ рдЕрд╕реЗрдЪ рдЖрд╣реЗ sprintf, рдлрдХреНрдд рд▓реБрдЖ рдордзреНрдпреЗ, рдлрдХреНрдд рдпреЛрдЧреНрдп. рдЖрдгрд┐ рдЖрдореНрд╣реА рддреЗ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рджреЗрддреЛ.

рдкрд░рд┐рдгрд╛рдореА, рддреЗ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдкрдг рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрдЧрд╛рдХрдбреЗ рдкрд░рдд. рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ, рдХреЛрдгреАрд╣реА рд╣реЕрд▓реЛ рд╡рд░реНрд▓реНрдб рддреИрдирд╛рдд рдХрд░рдд рдирд╛рд╣реА. рдЖрдордЪрд╛ рдЕрд░реНрдЬ рд╕рд╛рдорд╛рдиреНрдпрдд: рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд┐рдВрд╡рд╛ рдЗрддрд░рддреНрд░ рдХреБрдареЗрддрд░реА рдЬрд╛рддреЛ рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рддреЛ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рддреЛ.

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдлрдХреНрдд рдмрд╕рддреЛ рдЖрдгрд┐ рд╡рд╛рдЯ рдкрд╛рд╣рддреЛ. рддреЗ рдлрд╛рд░ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА. рдЬреЗрд╡реНрд╣рд╛ 100.000 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдпреЗрддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рддреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдХрдареАрдг рдЕрд╕рддреЗ. рдореНрд╣рдгреВрди, рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рдПрдХ рд╕рд╛рдзрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рдкрд░реВ. рдЖрдореНрд╣реА рдЪрд┐рддреНрд░реЗ рдкрд╛рд╣реВ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдорд╛рдВрдЬрд░реА. рдлрдХреНрдд рдЖрдореНрд╣реА рдлрдХреНрдд рд╢реЛрдзрдгрд╛рд░ рдирд╛рд╣реА, рдЖрдореНрд╣реА рдХреАрд╡рд░реНрдбреНрд╕рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реВ рдЖрдгрд┐, рдЬрд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ "рдорд╛рдВрдЬрд░реАрдЪреЗ рдкрд┐рд▓реНрд▓реВ" рд╢реЛрдзрд▓реЗ рддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рдВрдЬрд░реА, рдлреНрд▓рдлреА рдЗрддреНрдпрд╛рджреА рд╕рд╛рдкрдбрддреАрд▓. рдкреНрд░рдердо рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдмреЕрдХрдПрдВрдбрд╡рд░ рд╡рд┐рдирдВрддреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рджреЛрди рдУрд│реА рддреБрдореНрд╣рд╛рд▓рд╛ GET рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЙрдЪрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд, рдХреЛрдгрддреАрд╣реА рдЧреБрдВрддрд╛рдЧреБрдВрдд рдирд╛рд╣реА. рдордЧ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА рдирд┐рдпрдорд┐рдд SQL рдХреНрд╡реЗрд░реА рд╡рд╛рдкрд░реВрди рдХреАрд╡рд░реНрдб рдЖрдгрд┐ рдПрдХреНрд╕реНрдЯреЗрдВрд╢рдирджреНрд╡рд╛рд░реЗ рдЯреЗрдмрд▓ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рд╣реА рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рддреЛ. рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ. рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдореНрд╣реА рд▓рд╛рдпрдмреНрд░рд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рддреЛ resty.mysql, рдЬреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдЪ рдХрд┐рдЯрдордзреНрдпреЗ рдЖрд╣реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рд╕рд░реНрд╡рдХрд╛рд╣реА рддрдпрд╛рд░ рдЖрд╣реЗ. рдХрдиреЗрдХреНрдЯ рдЖрдгрд┐ SQL рдХреНрд╡реЗрд░реА рдХрд╢реА рдХрд░рд╛рд╡реА рддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рд╣реЗ рдереЛрдбреЗ рднрд┐рддреАрджрд╛рдпрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдпреЗрдереЗ 10 рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ. рдЖрдореНрд╣реА 10 рд░реЗрдХреЙрд░реНрдб рдмрд╛рд╣реЗрд░ рдХрд╛рдврддреЛ, рдЖрдореНрд╣реА рдЖрд│рд╢реА рдЖрд╣реЛрдд, рдЖрдореНрд╣реА рдЖрдгрдЦреА рджрд╛рдЦрд╡реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. SQL рдордзреНрдпреЗ, рдореА рдорд░реНрдпрд╛рджрд╛ рд╡рд┐рд╕рд░рд▓реЛ.

рдордЧ рдЖрдореНрд╣реА рд╕рд░реНрд╡ рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╛рдареА рдкреНрд░рддрд┐рдорд╛ рд╢реЛрдзреВ. рдЖрдореНрд╣реА рд╡рд┐рдирдВрддреНрдпрд╛ рдЧреЛрд│рд╛ рдХрд░рддреЛ рдЖрдгрд┐ рд▓реБрдЖ рдЯреЗрдмрд▓ рднрд░рддреЛ reqs, рдЖрдгрд┐ рдХрд░рд╛ ngx.location.capture_multi.

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдпрд╛ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рдорд╛рдВрддрд░рдкрдгреЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдЙрддреНрддрд░реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдкрд░рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдзрд╛рд╡рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рд╕рд░реНрд╡рд╛рдд рдордВрдж рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрдЗрддрдХреА рдЕрд╕рддреЗ. рдЬрд░ рдЖрдкрдг рд╕рд░реНрд╡рд╛рдВрдиреА 50 рдорд┐рд▓реАрд╕реЗрдХрдВрджрдордзреНрдпреЗ рдкрд░рдд рд╢реВрдЯ рдХреЗрд▓реЗ рдЖрдгрд┐ рдЖрдореНрд╣реА рд╢рдВрднрд░ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рд▓реНрдпрд╛, рддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ 50 рдорд┐рд▓реАрд╕реЗрдХрдВрджрдордзреНрдпреЗ рдкреНрд░рддрд┐рд╕рд╛рдж рдорд┐рд│реЗрд▓.

рдЖрдореНрд╣реА рдЖрд│рд╢реА рдЖрд╣реЛрдд рдЖрдгрд┐ HTTP рд╣рд╛рддрд╛рд│рдгреА рдЖрдгрд┐ рдХреЕрд╢рд┐рдВрдЧ рд▓рд┐рд╣реВ рдЗрдЪреНрдЫрд┐рдд рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдХрд╛рд╣реА NGINX рд▓рд╛ рдХрд░реВ. рддреБрдореНрд╣реА рдмрдШрд┐рддрд▓реЗ рдореНрд╣рдгреВрди рдПрдХ рд╡рд┐рдирдВрддреА рд╣реЛрддреА url/fetch, рддреЛ рдпреЗрдереЗ рдЖрд╣реЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдореНрд╣реА рд╕рд╛рдзреЗ рдмрдирд╡рддреЛ proxy_pass, рдХреЕрд╢реЗ рдХреБрдареЗ рдХрд░рд╛рдпрдЪреЗ, рддреЗ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдкрд░рдВрддреБ рд╣реЗ рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕ рдбреЗрдЯрд╛ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреА рдХрд▓реНрдкрдирд╛ рдореНрд╣рдгрдЬреЗ рдЬреЗрдПрд╕рдУрдПрдирд╡рд░ рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕рд╣рдЬрдкрдгреЗ, рджреЛрди рдУрд│реАрдВрдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдгреЗ. рдЖрдореНрд╣реА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рджреЗрддреЛ, рдЖрдореНрд╣реА JSON рджреЗрддреЛ.

рдкрдг рдПрдХ рдЕрдбрдЪрдг рдЖрд╣реЗ: рд╡рд╛рдкрд░рдХрд░реНрддрд╛ JSON рд╡рд╛рдЪреВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рдЖрдореНрд╣рд╛рд▓рд╛ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рддреЗ рдХрд░рд╛рд╡реЗрд╕реЗ рд╡рд╛рдЯрдд рдирд╛рд╣реА. рд╣реЛрдп, рдЖрдгрд┐ рдПрд╕рдЗрдУ рддрдЬреНрдЮ рдореНрд╣рдгрддреАрд▓ рдХреА рдЖрдореНрд╣реА рдЪрд┐рддреНрд░реЗ рд╢реЛрдзрдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдВрдирд╛ рдХрд╛рд│рдЬреА рдирд╛рд╣реА. рдЖрдгрд┐ рдЬрд░ рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдХрд╛рд╣реА рд╕рд╛рдордЧреНрд░реА рджрд┐рд▓реА рддрд░ рддреЗ рдореНрд╣рдгрддреАрд▓ рдХреА рдЖрдордЪреЗ рд╢реЛрдз рдЗрдВрдЬрд┐рди рдХрд╛рд╣реАрд╣реА рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдд рдирд╛рд╣реАрдд.

рддреНрдпрд╛рдЪреЗ рдХрд╛рдп рдХрд░рд╛рдпрдЪреЗ? рдЕрд░реНрдерд╛рдд, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ HTML рджреЗрдК. рд╣рдБрдбрд▓рд╕рд╣ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЖрд╣реЗрдд. рддреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдЪрдирд╛рд▓рдп рдЖрд╣реЗ lua-resty-template.

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рддреБрдореНрд╣реА рдУрдкреАрдПрдо рд╣реА рддреАрди рднрдпрд╛рдирдХ рдЕрдХреНрд╖рд░реЗ рдкрд╛рд╣рд┐рд▓реА рдЕрд╕рддреАрд▓. OpenResty рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░рд╕рд╣ рдпреЗрддреЗ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рд╡рд┐рд╡рд┐рдз рдореЙрдбреНрдпреВрд▓реНрд╕рдЪрд╛ рд╕рдореВрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рд╡рд┐рд╢реЗрд╖рддрдГ, lua-resty-template. рд╣реЗ рдЬреЕрдВрдЧреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕рд╕рд╛рд░рдЦреЗрдЪ рдПрдХ рд╕рд╛рдзреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрд┐рди рдЖрд╣реЗ. рддреЗрдереЗ рддреБрдореНрд╣реА рдХреЛрдб рд▓рд┐рд╣реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░реВ рд╢рдХрддрд╛.

рдкрд░рд┐рдгрд╛рдореА, рд╕рд░реНрд╡рдХрд╛рд╣реА рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдореНрд╣реА рдбреЗрдЯрд╛ рдШреЗрддрд▓рд╛ рдЖрдгрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреБрдиреНрд╣рд╛ рджреЛрди рдУрд│реАрдВрдордзреНрдпреЗ рд░реЗрдВрдбрд░ рдХреЗрд▓реЗ. рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдирдВрджреА рдЖрд╣реЗ, рдорд╛рдВрдЬрд░реА рдорд┐рд│рд╛рд▓реА. рдЖрдореНрд╣реА рд╡рд┐рдирдВрддреАрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рддреНрдпрд╛рд▓рд╛ рдорд╛рдВрдЬрд░реАрдЪреНрдпрд╛ рдкрд┐рд▓реНрд▓рд╛рдВрд╕рд╛рдареА рдлрд░ рд╕реАрд▓ рджреЗрдЦреАрд▓ рдорд┐рд│рд╛рд▓рд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрдЪ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА, рдХрджрд╛рдЪрд┐рдд рддреЛ рддреЗ рд╢реЛрдзрдд рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рддреЛ рддреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрд▓рд╛ рдирд╛рд╣реА.

рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЫрд╛рди рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рд╡рд┐рдХрд╛рд╕рд╛рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рджрд╛рдЦрд╡реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рдЪрд▓рд╛ рдЕрдзрд┐рдХреГрддрддрд╛ рдХрд░реВрдпрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдУрдкрдирд░реЗрд╕реНрдЯреАрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдПрдирдЬреАрдЖрдпрдПрдирдПрдХреНрд╕ рд╡рд┐рдирдВрддреА рдХрд╢реА рд╣рд╛рддрд╛рд│рддреЗ рддреЗ рдкрд╛рд╣реВрдпрд╛:

  • рдкрд╣рд┐рд▓рд╛ рдЯрдкреНрдкрд╛ - рдкреНрд░рд╡реЗрд╢, рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдиреБрдХрддрд╛рдЪ рдЖрд▓рд╛, рдЖрдгрд┐ рдЖрдореНрд╣реА рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ, IP рдкрддреНрддреНрдпрд╛рджреНрд╡рд╛рд░реЗ, рдЗрддрд░ рдбреЗрдЯрд╛рджреНрд╡рд╛рд░реЗ рдкрд╛рд╣рд┐рд▓реЗ. рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ рдЖрд╡рдбрдд рдирд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рддреЗ рддрд╛рдмрдбрддреЛрдм рдХрд╛рдкреВрди рдЯрд╛рдХреВ рд╢рдХрддрд╛. рд╣реЗ рдЕрдзрд┐рдХреГрддрддреЗрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЦреВрдк рд╡рд┐рдирдВрддреНрдпрд╛ рдорд┐рд│рд╛рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рддреНрдпрд╛рдВрдирд╛ рд╕рд╣рдЬрдкрдгреЗ рддреЛрдбреВ рд╢рдХрддреЛ.
  • рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд╛. рдХрд╛рд╣реА рд╡рд┐рдирдВрддреА рдбреЗрдЯрд╛ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ.
  • рд╕рд╛рдордЧреНрд░реА. рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╕рд╛рдордЧреНрд░реА рджреЗрддреЛ.
  • рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд┐рд▓реНрдЯрд░. рдкреНрд░рддрд┐рд╕рд╛рдж рд╢реАрд░реНрд╖рд▓реЗрдЦ рдмрджрд▓рд╛. рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗ рддрд░ proxy_pass, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рджреЗрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХрд╛рд╣реА рд╢реАрд░реНрд╖рд▓реЗрдЦ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣реВ рд╢рдХрддреЛ.
  • рд╢рд░реАрд░ рдлрд┐рд▓реНрдЯрд░. рдЖрдкрдг рд╢рд░реАрд░ рдмрджрд▓реВ рд╢рдХрддреЛ.
  • рд▓реЙрдЧ рдЗрди - рд▓реЙрдЧрд┐рдВрдЧ. рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪрдордзреНрдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдпрд░рд╢рд┐рд╡рд╛рдп рд▓реЙрдЧ рд▓рд┐рд╣рд┐рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.

рдЖрдордЪреА рдЕрдзрд┐рдХреГрддрддрд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕реЗрд▓:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдореНрд╣реА рддреНрдпрд╛рдд рдЬреЛрдбреВ location, рдЬреНрдпрд╛рдЪреЗ рдЖрдореНрд╣реА рдЖрдзреА рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗрдереЗ рдЦрд╛рд▓реАрд▓ рдХреЛрдб рдареЗрд╡рд▓реЗ рдЖрд╣реЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдХреБрдХреА рдЯреЛрдХрди рдЖрд╣реЗ рдХрд╛ рддреЗ рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ. рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдЕрдзрд┐рдХреГрддрддреЗрд╡рд░ рдЯрд╛рдХрддреЛ. рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдзреВрд░реНрдд рдЖрд╣реЗрдд рдЖрдгрд┐ рдЕрд╕рд╛ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡реВ рд╢рдХрддрд╛рдд рдХреА рдХреБрдХреА рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рддреЗ рд░реЗрдбрд┐рд╕рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдареЗрд╡реВ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рд░реЗрдбрд┐рд╕рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдХреЛрдб рдЕрддрд┐рд╢рдп рд╕реЛрдкрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЗрддрд░ рднрд╛рд╖рд╛рдВрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│рд╛ рдирд╛рд╣реА. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╕рд░реНрд╡ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ, рддреЗрдереЗ рдХрд╛рдп рдЖрд╣реЗ, рдпреЗрдереЗ рдХрд╛рдп рдЖрд╣реЗ, рддреЗ рдмреНрд▓реЙрдХ рдХрд░рдд рдирд╛рд╣реА. рддреБрдореНрд╣реА рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рд╕, рддреЗ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрджреНрдзрддреАрдиреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. gevent рд╕рд╣, рдлрдХреНрдд рдЪрд╛рдВрдЧрд▓реЗ рдХреЗрд▓реЗ.

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЪрд▓рд╛ рдЕрдзрд┐рдХреГрддрддрд╛ рд╕реНрд╡рддрдГ рдХрд░реВ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЖрдореНрд╣реА рдореНрд╣рдгрддреЛ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреА рдореБрдЦреНрдп рднрд╛рдЧ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ POST рд╡рд┐рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд, рд▓реЙрдЧрд┐рди рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдмрд░реЛрдмрд░ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рддрдкрд╛рд╕рд╛. рдЪреБрдХреАрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдЕрдзрд┐рдХреГрддрддреЗрд╡рд░ рдЯрд╛рдХрддреЛ. рдЖрдгрд┐ рдЬрд░ рддреЗ рдмрд░реЛрдмрд░ рдЕрд╕рддреАрд▓ рддрд░ рдЖрдореНрд╣реА рд░реЗрдбрд┐рд╕рд▓рд╛ рдЯреЛрдХрди рд▓рд┐рд╣рд┐рддреЛ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдХреБрдХреА рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛, рд╣реЗ рджреЛрди рдУрд│реАрдВрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдХреЗрд▓реЗ рдЬрд╛рддреЗ:

рдУрдкрдирд░реЗрд╕реНрдЯреА: NGINX рд▓рд╛ рдкреВрд░реНрдг рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рдЙрджрд╛рд╣рд░рдг рд╕реЛрдкреЗ рдЖрд╣реЗ, рд╕рдЯреНрдЯрд╛ рдЖрд╣реЗ. рдЕрд░реНрдерд╛рдд, рдЖрдореНрд╣реА рдЕрд╢реА рд╕реЗрд╡рд╛ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдЬреА рд▓реЛрдХрд╛рдВрдирд╛ рдорд╛рдВрдЬрд░реА рджрд╛рдЦрд╡рддреЗ. рдкрдг рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдг рдУрд│рдЦрддреЛ. рддрд░ рдЙрддреНрдкрд╛рджрдирд╛рдд рдХрд╛рдп рдХрд░рддрд╛ рдпреЗрдИрд▓ рддреЗ рдкрд╛рд╣реВрдпрд╛.

  • рдорд┐рдирд┐рдорд▓рд┐рд╕реНрдЯ рдмреЕрдХрдПрдВрдб. рдХрдзреАрдХрдзреА рдЖрдореНрд╣рд╛рд▓рд╛ рдмреЕрдХрдПрдВрдбрд▓рд╛ рдереЛрдбрд╛рд╕рд╛ рдбреЗрдЯрд╛ рджреНрдпрд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ: рдХреБрдареЗрддрд░реА рдЖрдореНрд╣рд╛рд▓рд╛ рддрд╛рд░реАрдЦ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ, рдХреБрдареЗрддрд░реА рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ, рдЖрддрд╛ рд╕рд╛рдЗрдЯрд╡рд░ рдХрд┐рддреА рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрд╣реЗрдд рддреЗ рд╕рд╛рдВрдЧрд╛, рдХрд╛рдЙрдВрдЯрд░ рдХрд┐рдВрд╡рд╛ рдЖрдХрдбреЗрд╡рд╛рд░реАрд╡рд░ рд╕реНрдХреНрд░реВ рдХрд░рд╛. рдЦреВрдк рд▓рд╣рд╛рди рдХрд╛рд╣реАрддрд░реА. рдХрд╛рд╣реА рдХрд┐рдорд╛рди рддреБрдХрдбреЗ рдЕрдЧрджреА рд╕рд╣рдЬ рдмрдирд╡рддрд╛ рдпреЗрддрд╛рдд. рд╣реЗ рдЬрд▓рдж, рд╕реЛрдкреЗ рдЖрдгрд┐ рдЙрддреНрддрдо рдЕрд╕реЗрд▓.
  • рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ. рдХрдзреАрдХрдзреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдкреЗрдЬрдордзреНрдпреЗ рдЬрд╛рд╣рд┐рд░рд╛рддреА рдПрдореНрдмреЗрдб рдХрд░рд╛рдпрдЪреНрдпрд╛ рдЕрд╕рддрд╛рдд рдЖрдгрд┐ рдЖрдореНрд╣реА API рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╣ рдпрд╛ рдЬрд╛рд╣рд┐рд░рд╛рддреА рдШреЗрддреЛ. рдпреЗрдереЗ рд╣реЗ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдЖрдордЪреЗ рдмреЕрдХрдПрдВрдб рд▓реЛрдб рдХрд░рдд рдирд╛рд╣реА, рдЬреЗ рдЖрдзреАрдЪ рдХрдареЛрд░ рдкрд░рд┐рд╢реНрд░рдо рдХрд░рдд рдЖрд╣реЗ. рдЖрдкрдг рдпреЗрдереЗ рдЙрдЪрд▓реВ рдЖрдгрд┐ рдЧреЛрд│рд╛ рдХрд░реВ рд╢рдХрддрд╛. рдЖрдореНрд╣реА рдХрд╛рд╣реА JS рдореЛрд▓реНрдб рдХрд░реВ рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЙрд▓рдЯ, рдЕрдирд╕реНрдЯрд┐рдХ рдХрд░реВ рд╢рдХрддреЛ, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рджреЗрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХрд╛рд╣реАрддрд░реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд░реВ рд╢рдХрддреЛ.
  • рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рд╕рд╛рдареА рджрд░реНрд╢рдиреА рднрд╛рдЧ. рд╣реЗ рджреЗрдЦреАрд▓ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реЗ рдкреНрд░рдХрд░рдг рдЖрд╣реЗ, рдореА рддреЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗ. рддреНрдпрд╛рдЖрдзреА, рдореА Tenzor рдпрд╛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреАрд╕рд╛рдареА рдХрд╛рдо рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреА рджреЗрд╢рд╛рддреАрд▓ рдЬрд╡рд│рдкрд╛рд╕ рдирд┐рдореНрдореНрдпрд╛ рдХрд╛рдпрджреЗрд╢реАрд░ рд╕рдВрд╕реНрдерд╛рдВрд╕рд╛рдареА рдЕрд╣рд╡рд╛рд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдЖрдореНрд╣реА рдПрдХ рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ, рддреЗрдереЗ рд╕рдорд╛рди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░реВрди рдмрд░реНтАНрдпрд╛рдЪ рдЧреЛрд╖реНрдЯреА рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд: рд░рд╛рдЙрдЯрд┐рдВрдЧ, рдЕрдзрд┐рдХреГрддрддрд╛ рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА.
    рдУрдкрдирд░реЗрд╕реНрдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рддреБрдордЪреНрдпрд╛ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рд╕рд╛рдареА рдЧреЛрдВрдж рдореНрд╣рдгреВрди рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯреАрд▓рд╛ рдПрдХрдЪ рдкреНрд░рд╡реЗрд╢ рдЖрдгрд┐ рдПрдХрдЪ рдЗрдВрдЯрд░рдлреЗрд╕ рдорд┐рд│реЗрд▓. рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдпреЗрдереЗ Node.js рдЖрд╣реЗ, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдпреЗрдереЗ PHP рдЖрд╣реЗ, рддреБрдордЪреНрдпрд╛рдХрдбреЗ Python рдЖрд╣реЗ, рдпреЗрдереЗ рдХрд╛рд╣реА Erlang рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ, рдЖрдореНрд╣реА рд╕рдордЬрддреЛ рдХреА рдЖрдореНрд╣реА рд╕рд░реНрд╡рддреНрд░ рд╕рдорд╛рди рдХреЛрдб рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рдореНрд╣рдгреВрди, OpenResty рд╕рдореЛрд░ рдкреНрд▓рдЧ рдЗрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

  • рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд╕рд╣рд╕рд╛ NGINX рдкреНрд░рд╡реЗрд╢рджреНрд╡рд╛рд░рд╛рд╡рд░ рдЕрд╕рддреЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рддреНрдпрд╛рддреВрди рдЬрд╛рддрд╛рдд. рдпрд╛ рдард┐рдХрд╛рдгреА рддреЗ рдЧреЛрд│рд╛ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рддреБрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдХрд╛рд╣реАрддрд░реА рдореЛрдЬреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗ рдХреБрдареЗрддрд░реА рдлреЗрдХреВрди рджреЗрдК рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдорд╛рди Elasticsearch, Logstash, рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рд▓реЙрдЧрд╡рд░ рд▓рд┐рд╣рд╛ рдЖрдгрд┐ рдирдВрддрд░ рдХреБрдареЗрддрд░реА рдкрд╛рдард╡реВ рд╢рдХрддрд╛.
  • рдмрд╣реБ-рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдгрд╛рд▓реА. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рджреЗрдЦреАрд▓ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗрдд. рдЖрдЬ рдХреЗрдк рдЯрд╛рдЙрдирдордзреНрдпреЗ рдЕрд▓реЗрдХреНрдЭрд╛рдВрдбрд░ рдЧреНрд▓реЕрдбрд┐рд╢ рддреБрдореНрд╣рд╛рд▓рд╛ рдУрдкрдирд░реЗрд╕реНрдЯреА рд╡рд╛рдкрд░реВрди рдорд▓реНрдЯреАрдкреНрд▓реЗрдЕрд░ рдЧреЗрдордЪреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╕рд╛рдВрдЧреЗрд▓.
  • рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧрдЪреА рд╡рд┐рдирдВрддреА (WAF). рдЖрддрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреЗ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╛рдпрд░рд╡реЙрд▓ рдмрдирд╡рдгреЗ рдлреЕрд╢рдиреЗрдмрд▓ рдЖрд╣реЗ, рдЕрд╢рд╛ рдЕрдиреЗрдХ рд╕реЗрд╡рд╛ рдЖрд╣реЗрдд рдЬреНрдпрд╛ рддреНрдпрд╛рдВрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд. OpenResty рдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рддреБрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рдПрдХ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╛рдпрд░рд╡реЙрд▓ рдмрдирд╡реВ рд╢рдХрддрд╛, рдЬреЗ рддреБрдордЪреНрдпрд╛ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рд╣рдЬрдкрдгреЗ рдЖрдгрд┐ рд╕рд╣рдЬ рдлрд┐рд▓реНрдЯрд░ рдХрд░реЗрд▓. рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкрд╛рдпрдерди рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрд▓реЗ рдЖрд╣реЗ рдХреА PHP рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА, рдЬреЛрдкрд░реНрдпрдВрдд рддреБрдореНрд╣реА рддреЗ рдХрдиреНрд╕реЛрд▓рдордзреВрди рдХреБрдареЗрд╣реА рдЙрдЧрд╡рд▓реЗ рдирд╛рд╣реА. рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ MySQL рдЖрдгрд┐ Python рдЖрд╣реЗ. рдХрджрд╛рдЪрд┐рдд, рдпреЗрдереЗ рддреЗ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реВ рд╢рдХрддрд╛рдд. рдореНрд╣рдгреВрди, рддреБрдореНрд╣реА рдореВрдХ рд╡рд┐рдирдВрддреНрдпрд╛ рддреНрд╡рд░реАрдд рдЖрдгрд┐ рд╕реНрд╡рд╕реНрддрдкрдгреЗ рд╕рдореЛрд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдлрд┐рд▓реНрдЯрд░ рдХрд░реВ рд╢рдХрддрд╛.
  • рд╕рдореБрджрд╛рдп. OpenResty NGINX рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреНрдпрд╛рдд рдПрдХ рдмреЛрдирд╕ рдЖрд╣реЗ - рд╣реЗ рдЖрд╣реЗ NGINX рд╕рдореБрджрд╛рдп. рд╣реЗ рдЦреВрдк рдореЛрдареЗ рдЖрд╣реЗ, рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреА рдкрдбрдгрд╛рд▒реНрдпрд╛ рдЕрдиреЗрдХ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ NGINX рд╕рдореБрджрд╛рдпрд╛рдиреЗ рдЖрдзреАрдЪ рджрд┐рд▓реА рдЖрд╣реЗрдд.

    рд▓реБрдЖ рд╡рд┐рдХрд╛рд╕рдХ. рдХрд╛рд▓ рдореА рд╣рд╛рдпрд▓реЛрдб ++ рдЯреНрд░реЗрдирд┐рдВрдЧ рдбреЗрд▓рд╛ рдЖрд▓реЗрд▓реНрдпрд╛ рдореБрд▓рд╛рдВрд╢реА рдмреЛрд▓рд▓реЛ рдЖрдгрд┐ рдРрдХрд▓реЗ рдХреА рд▓реБрдЖрдордзреНрдпреЗ рдлрдХреНрдд рдЯрд╛рд░рдВрдЯреВрд▓ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ. рдЕрд╕реЗ рдирд╛рд╣реА, рд▓реБрдЖрдордзреНрдпреЗ рдЦреВрдк рдЧреЛрд╖реНрдЯреА рд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдЙрджрд╛рд╣рд░рдгреЗ: OpenResty, Prosody XMPP рд╕рд░реНрд╡реНрд╣рд░, Love2D рдЧреЗрдо рдЗрдВрдЬрд┐рди, Lua рд╡реЙрд░рдХреНрд░рд╛рдлреНрдЯ рдЖрдгрд┐ рдЗрддрд░рддреНрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рддреЗрдереЗ рдмрд░реЗрдЪ рд▓реБрдЖ рд╡рд┐рдХрд╛рд╕рдХ рдЖрд╣реЗрдд, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдореЛрдард╛ рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгрд╛рд░рд╛ рд╕рдореБрджрд╛рдп рдЖрд╣реЗ. рдорд╛рдЭреНрдпрд╛ рд╕рд░реНрд╡ рд▓реБрдЖ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ рдХрд╛рд╣реА рддрд╛рд╕рд╛рдВрддрдЪ рдорд┐рд│рд╛рд▓реА. рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреАрд╡рд░ рд▓рд┐рд╣рд┐рддрд╛, рдЕрдХреНрд╖рд░рд╢рдГ рдХрд╛рд╣реА рдорд┐рдирд┐рдЯрд╛рдВрдд рдЖрдзреАрдЪ рдЙрддреНрддрд░рд╛рдВрдЪрд╛ рдПрдХ рд╕рдореВрд╣ рдЕрд╕рддреЛ, рддреЗ рдХрд╛рдп рдЖрдгрд┐ рдХрд╕реЗ, рдХрд╛рдп рдЖрд╣реЗ рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдд. рдЦреВрдк рдЫрд╛рди рдЖрд╣реЗ. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдЕрд╕рд╛ рджрдпрд╛рд│реВ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╕рдореБрджрд╛рдп рд╕рд░реНрд╡рддреНрд░ рдирд╛рд╣реА.
    OpenResty рдордзреНрдпреЗ GitHub рдЖрд╣реЗ, рдЬрд┐рдереЗ рдХрд╛рд╣реАрддрд░реА рдЦрдВрдбрд┐рдд рдЭрд╛рд▓реНрдпрд╛рд╕ рдЖрдкрдг рд╕рдорд╕реНрдпрд╛ рдЙрдШрдбреВ рд╢рдХрддрд╛. Google Groups рд╡рд░ рдПрдХ рдореЗрд▓рд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ рдЖрд╣реЗ рдЬрд┐рдереЗ рддреБрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдВрд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░реВ рд╢рдХрддрд╛, рдЪрд┐рдиреА рднрд╛рд╖реЗрдд рдореЗрд▓рд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ рдЖрд╣реЗ - рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдзреАрдЪ рдорд╛рд╣реАрдд рдирд╛рд╣реА, рдХрджрд╛рдЪрд┐рдд рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдВрдЧреНрд░рдЬреА рдпреЗрдд рдирд╛рд╣реА, рдкрдг рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд┐рдиреА рднрд╛рд╖реЗрдЪреЗ рдЬреНрдЮрд╛рди рдЖрд╣реЗ.

рдкрд░рд┐рдгрд╛рдо

  • рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдУрдкрдирд░реЗрд╕реНрдЯреА рд╣реЗ рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрд╕реНрдХрд░ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ рд╣реЗ рдореА рд╕рд╛рдВрдЧреВ рд╢рдХрд▓реЛ.
  • рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢рд╛рдЪрд╛ рдЙрдВрдмрд░рдард╛ рдХрдореА рдЖрд╣реЗ, рдХрд╛рд░рдг рдХреЛрдб рдЖрдкрдг рд▓рд┐рд╣рд┐рддреЛ рддреНрдпрд╛рдкреНрд░рдорд╛рдгреЗрдЪ рдЖрд╣реЗ, рднрд╛рд╖рд╛ рдЕрдЧрджреА рд╕реЛрдкреА рдЖрдгрд┐ рдХрд┐рдорд╛рди рдЖрд╣реЗ.
  • рд╣реЗ рдХреЙрд▓рдмреЕрдХрд╢рд┐рд╡рд╛рдп рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ I/O рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдиреВрдбрд▓реНрд╕ рдирд╕рддреАрд▓ рдХрд╛рд░рдг рдЖрдореНрд╣реА рдХрдзреАрдХрдзреА NodeJS рдордзреНрдпреЗ рд▓рд┐рд╣реВ рд╢рдХрддреЛ.
  • рд╣реЗ рдПрдХ рд╕реЛрдкреЗ рдЙрдкрдпреЛрдЬрди рдЖрд╣реЗ, рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдХреЛрдбрд╕рд╣ NGINX рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдп рдХрд░рддреЗ.
  • рдореЛрдард╛ рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгрд╛рд░рд╛ рд╕рдореБрджрд╛рдп.

рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХрд╕реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рд╣реЗ рдореА рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдирд╛рд╣реА, рд╣реА рдЦреВрдк рдореЛрдареА рдХрдерд╛ рдЖрд╣реЗ.

рдЖрдкрдг рд▓рдХреНрд╖ рджрд┐рд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж!


рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдкреНрд░реЛрдЯрд╛рд╕реЛрд╡реНрд╣ - рдУрдкрдирд░реЗрд╕реНрдЯреА: рдПрдирдЬреАрдЖрдпрдПрдирдПрдХреНрд╕рд▓рд╛ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдмрджрд▓рдгреЗ

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛