OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИрд╕рдореНрдореЗрд▓рдирдХреЛ рдкреНрд░рддрд┐рд╡реЗрджрдирдХреЛ рдЯреНрд░рд╛рдиреНрд╕рдХреНрд░рд┐рдкреНрдЯ рдкреБрдирдГ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрджреИрдЫреМрдБ рд╣рд╛рдИрд▓реЛрдб++ 2016, рдЬреБрди рдЧрдд рд╡рд░реНрд╖ рдиреЛрднреЗрдореНрдмрд░ 7-8 рдорд╛ рдорд╕реНрдХреЛ рдирдЬрд┐рдХреИрдХреЛ Skolkovo рдорд╛ рднрдПрдХреЛ рдерд┐рдпреЛред рд╡реНрд▓рд╛рджрд┐рдорд┐рд░ рдкреНрд░реЛрдЯрд╛рд╕реЛрд╡ OpenResty рд░ Lua рд╕рдБрдЧ NGINX рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╕рд░реА рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдБрдЫред

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

рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрд▓реЗ рдмреБрдЭреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдпреЛ рдХрддрд┐ рдЦрд░рд╛рдм рдерд┐рдпреЛред рдЬрдм рдо рдереЛрд░реИ рдЬреБрдирд┐рдпрд░ рдерд┐рдПрдБ, рдо рдЖрдПрд░ рдпреА рджреБрдИ-рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рджрд┐рдЗрдпреЛред рдЕрд╣рд┐рд▓реЗ рдпрд╣рд╛рдБ рд╕рдмреИрдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рднрд╛рд░ рдЫред рдо рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдорд╛ рдЧрдПрдБ рд░ рд╕реЛрдзреЗрдВ: "рдХреЗрдЯрд╛рд╣рд░реВ, рдорд▓рд╛рдИ рднрдиреНрдиреБрд╣реЛрд╕реН, рддрдкрд╛рдИрдВрд╕рдБрдЧ рдареВрд▓реЛ рдбрд╛рдЯрд╛ рдЫ, рдХреЗ рд╕рдмреИ рд░рд╛рдореНрд░реЛ рдЫ? рддрдкрд╛рдИрдВрд╕рдБрдЧ рдХрддрд┐рд╡рдЯрд╛ рдЖрдзрд╛рд░рд╣рд░реВ рдЫрдиреН? рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдорд▓рд╛рдИ рдЬрд╡рд╛рдл рджрд┐рдП: "рд╣рд╛рдореАрд╕рдБрдЧ 100 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯрд╣рд░реВ рдЫрдиреН!" рдореИрд▓реЗ рднрдиреЗ: "рдареАрдХ рдЫ, 100 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯ!" рд░ рдо рдЖрдлреНрдиреЛ рдкреЛрдХрд░ рдЕрдиреБрд╣рд╛рд░ рдХрд╕рд░реА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреЗ рдЖрдлреИрд▓рд╛рдИ рд╕реЛрдЪрд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдБред рддрдкрд╛рдИрдВ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ, рд╣реЛ, рдХреЗрдЯрд╛рд╣рд░реВ рд░рд╛рдореНрд░реЛ рдЫрдиреН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдИрдВ рдлрд┐рд░реНрддрд╛ рдЬрд╛рдиреБрд╣реБрдиреНрдЫ рд░ рдпреА рдмрд╣реБ-рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрд╕рдБрдЧ рдЯрд┐рдВрдХрд░ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рд░ рдпреЛ рдПрдХ рдЬреБрдирд┐рдпрд░ рд╣реБрдиреБ рд╣реЛред рдХреЗ рддрдкрд╛рдИ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпреЛ рдХрд╕реНрддреЛ рдкреНрд░рд╣рд╛рд░ рд╣реЛ?

рдорд▓рд╛рдИ реиреж рднрдиреНрджрд╛ рдмрдвреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ рдерд╛рд╣рд╛ рдЫред рдпреЛ рдХреБрд░рд╛ рдореИрд▓реЗ рдХрд╛рдо рдЧрд░реНрджрд╛ рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреБ рдкрд░реНрдиреЗ рдерд┐рдпреЛред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Erlang, C, C++, Lua, Python, Ruby, рдЕрд░реВ рдХреЗрд╣реАрдорд╛ рдХреЛрдб рджрд┐рдиреНрдЫрдиреН, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рд╕рдмреИ рдХрд╛рдЯреНрдиреБ рдкрд░реНрдЫред рд╕рд╛рдорд╛рдиреНрдп рдорд╛, рдорд▓рд╛рдИ рдерд┐рдпреЛред рдпреЛ рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдЧрдгрдирд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдерд┐рдПрди, рддрд░ 20 рдФрдВ рд╡рд░рд┐рдкрд░рд┐ рдХрддреИ рд╕рдВрдЦреНрдпрд╛ рд╣рд░рд╛рдПрдХреЛ рдерд┐рдпреЛред

рдЙрдкрд╕реНрдерд┐рдд рд╕рдмреИрд▓рд╛рдИ рд╕рдорд╛рдирд╛рдиреНрддрд░ рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ рд░ рд╣рд╛рдореА рдХреЗ рдЧрд░реНрдЫреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдерд╛рд╣рд╛ рднрдПрдХреЛрд▓реЗ, рдо рд╣рд╛рдореА рдХрддреНрддрд┐рдХреЛ рдиреНрдпрд╛рдиреЛ рдЫреМрдВ рд░ рд╣рд╛рдореА рдХреЗ рдЧрд░реНрдЫреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдЧрд░реНрджрд┐рдиред рдо рддрдкрд╛рдИрд▓рд╛рдИ рднрдиреНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд╡рд┐рд╢реНрд╡рднрд░ 13 рдХрд╛рд░реНрдпрд╛рд▓рдпрд╣рд░реВ рдЫрдиреН, 300 рднрдиреНрджрд╛ рдмрдвреА рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВ, рдорд╕реНрдХреЛ, рдЯрд╛рд▓рд┐рди рд░ рдорд╛рд▓реНрдЯрд╛рдорд╛ рд╡рд┐рдХрд╛рд╕ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдорд╛рд▓реНрдЯрд╛рдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрджрд┐ рдЬрд╛рдбреЛрдорд╛ рдЪрд┐рд╕реЛ рдЫ рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдкреАрда рдиреНрдпрд╛рдиреЛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, рд╣рд╛рдореНрд░реЛ рд╡рд┐рднрд╛рдЧрд▓реЗ рдкрд╛рдЗрдерди 2 рдорд╛ рд▓реЗрдЦреНрдЫред рд╣рд╛рдореА рд╡реНрдпрд╡рд╕рд╛рдпрдорд╛ рдЫреМрдВ рд░ рдлреЗрд╕рдирд▓ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдордп рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рджреБрдЦреА рдЫреМрдВред рд╣рд╛рдореА Django рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдХрд┐рдирднрдиреЗ рдпрд╕рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдЫ, рд░ рд╣рд╛рдореАрд▓реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬрд╣рд░реВ рд▓рд┐рдПрд░ рдлреНрдпрд╛рдБрдХреНрдпреМрдВред рд╕рд╛рдереИ MySQL, Redis рд░ NGINXред рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдиреНрдп рдзреЗрд░реИ рд░рд╛рдореНрд░рд╛ рдЪреАрдЬрд╣рд░реВ рдкрдирд┐ рдЫрдиреНред рд╣рд╛рдореАрд╕рдБрдЧ MongoDB рдЫ, рд╣рд╛рдореАрд╕рдБрдЧ рдЦрд░рд╛рдпреЛрд╣рд░реВ рд╡рд░рд┐рдкрд░рд┐ рджреМрдбрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН, рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдмреИ рдЫ - рддрд░ рдпреЛ рдореЗрд░реЛ рд╣реЛрдЗрди, рд░ рдо рдпреЛ рдЧрд░реНрджрд┐рдиред

OpenResty

рдореИрд▓реЗ рдЖрдлреНрдиреЛ рдмрд╛рд░реЗрдорд╛ рднрдиреЗ ред рдЖрдЬ рдо рдХреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрди рдЧрдЗрд░рд╣реЗрдХреЛ рдЫреБ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реН:

  • OpenResty рдХреЗ рд╣реЛ рд░ рдпреЛ рдХреЗ рд╕рдВрдЧ рдЦрд╛рдЗрдиреНрдЫ?
  • рд╣рд╛рдореАрд╕рдБрдЧ Python, NodeJS, PHP, Go рд░ рд╕рдмреИрдЬрдирд╛ рдЦреБрд╕реА рднрдПрдХрд╛ рдЕрдиреНрдп рд░рд╛рдореНрд░рд╛ рдЪреАрдЬрд╣рд░реВ рд╣реБрдБрджрд╛ рдХрд┐рди рдЕрд░реНрдХреЛ рдкрд╛рдЩреНрдЧреНрд░рд╛ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрдиреЗ?
  • рд░ рдЬреАрд╡рдирдмрд╛рдЯ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВред рдореИрд▓реЗ рд░рд┐рдкреЛрд░реНрдЯ рдзреЗрд░реИ рдХрд╛рдЯреНрдиреБ рдкрд░реНрдпреЛ рдХрд┐рдирднрдиреЗ рдпрд╕рд▓реЗ рдорд▓рд╛рдИ 3,5 рдШрдгреНрдЯрд╛ рд▓рд┐рдпреЛ, рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред

OpenResty NGINX рд╣реЛред рдЙрд╣рд╛рдБрд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХ рдкреВрд░реНрдг рд╡реЗрдм рд╕рд░реНрднрд░ рдЫ рдЬреБрди рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ рдЫрд┐рдЯреЛ рдХрд╛рдо рдЧрд░реНрджрдЫред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рд╣рд╛рдореА рдордзреНрдпреЗ рдзреЗрд░реИрд▓реЗ рдЙрддреНрдкрд╛рджрдирдорд╛ NGINX рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рддрдкрд╛рдИрдВ рд╕рдмреИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдЙрд╣рд╛рдБ рдЫрд┐рдЯреЛ рд░ рд░рд╛рдореНрд░реЛ рд╣реБрдиреБрд╣реБрдиреНрдЫред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпрд╕рдорд╛ рд░рд╛рдореНрд░реЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ I/O рдмрдирд╛рдП, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рд╕рд╛рдЗрдХрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рдЬрд╕реНрддреИ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкрд╛рдЗрдердирдорд╛ gevent рдЧрд░реЗред Gevent рд░рд╛рдореНрд░реЛ рдЫ, рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ C рдХреЛрдб рд▓реЗрдЦреНрдиреБрднрдпреЛ рд░ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ Gevent рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдбрд┐рдмрдЧ рдЧрд░реНрди рдкрд╛рдЧрд▓ рд╣реБрдиреБрд╣реБрдиреЗрдЫред рдорд╕рдБрдЧ рдЕрдиреБрднрд╡ рдерд┐рдпреЛ: рддреНрдпрд╣рд╛рдБ рдХреЗ рдЧрд▓реНрддреА рднрдпреЛ рднрдиреЗрд░ рдерд╛рд╣рд╛ рдкрд╛рдЙрди рджреБрдИ рджрд┐рди рд▓рд╛рдЧреНрдпреЛред рдпрджрд┐ рдХрд╕реИрд▓реЗ рдзреЗрд░реИ рд╣рдкреНрддрд╛рд╕рдореНрдо рдпрддрд╛рдЙрддрд╛ рдЦрдиреЗрдХреЛ рдЫреИрди, рд╕рдорд╕реНрдпрд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХреЛ рдЫреИрди, рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рд▓реЗрдЦреЗрдХреЛ рдЫ, рд░ рдЧреБрдЧрд▓рд▓реЗ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХреЛ рдЫреИрди рднрдиреЗ рд╣рд╛рдореА рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд╛рдЧрд▓ рд╣реБрдиреЗ рдерд┐рдпреМрдВред

NGINX рдкрд╣рд┐рд▓реЗ рдиреИ рдХреНрдпрд╛рд╕рд┐рдЩ рд░ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕рдХрд┐рдПрдХреЛ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдорд╛рдирд╡реАрдп рд░реВрдкрдорд╛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЪрд┐рдиреНрддрд╛ рд▓рд┐рдиреБ рдкрд░реНрджреИрди, рддрд╛рдХрд┐ рддрдкрд╛рдИрдВ рдХрддреИ рдврд┐рд▓реЛ рдирд╣реЛрд╕реН, рддрд╛рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рд╣рд░реВ рдХрддреИ рдЧреБрдорд╛рдЙрдиреБ рд╣реБрдиреНрдиред Nginx рддреИрдирд╛рде рдЧрд░реНрди рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ, рддрдкрд╛рдИрд▓реЗ рдХреЗ рд▓рд┐рдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрдиреБ рдкрд░реНрджреИрди - WSGI, PHP-FPM, Gunicorn, Unicornред Nginx рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓рд╛рдИ рджрд┐рдЗрдпреЛ, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗред Nginx рд╕рдВрд░рдЪрд┐рдд рддрд░рд┐рдХрд╛рдорд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред рдо рдпрд╕ рдмрд╛рд░реЗ рдХреЗрд╣рд┐ рдкрдЫрд┐ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБред рдЫреЛрдЯрдХрд░реАрдорд╛, рдпреЛ рдПрдХ рдЪрд░рдг рдЫ рдЬрдм рдпрд╕рд▓реЗ рднрд░реНрдЦрд░ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНтАНрдпреЛ, рдЬрдм рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНтАНрдпреЛ, рд░ рдЬрдм рдпрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдЧрд░реНтАНрдпреЛред

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

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

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдпрд╣рд╛рдБ рдзреЗрд░реИ рдЫред OpenResty рд▓реЗ рд▓реБрд╢ рд░ рдЗрдиреНрдЬрд┐рди рджреБрд╡реИ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реЗрдХреЛ рдЫред рд░ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рдмреИ рддрдпрд╛рд░ рдЫ - рддреИрдирд╛рдд рд░ рдХрд╛рдо рдЧрд░реНрджреИред

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

рдЧреАрддрдХреЛ рдкрд░реНрдпрд╛рдкреНрдд, рдХреЛрдбрдорд╛ рдЬрд╛рдФрдВред рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдиреЛ рдирдорд╕реНрдХрд╛рд░ рд╕рдВрд╕рд╛рд░ рдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рддреНрдпрд╣рд╛рдБ рдХреЗ рдЫ? рдпреЛ рдПрдХ рдЗрдиреНрдЬрд┐рдиреНрд╕ рд╕реНрдерд╛рди рд╣реЛред рд╣рд╛рдореА рдЪрд┐рдиреНрддрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд░рд╛рдЙрдЯрд┐рдЩ рд▓реЗрдЦреНрджреИрдиреМрдВ, рд╣рд╛рдореА рдХреЗрд╣рд┐ рд░реЗрдбрд┐рдореЗрдб рд▓рд┐рджреИрдиреМрдВ - рд╣рд╛рдореАрд╕рдБрдЧ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ NGINX рдорд╛ рдЫ, рд╣рд╛рдореА рд░рд╛рдореНрд░реЛ рд░ рдЕрд▓реНрдЫреА рдЬреАрд╡рди рдмрд┐рддрд╛рдЙрдБрдЫреМрдВред

content_by_lua_block рдПрдЙрдЯрд╛ рдмреНрд▓рдХ рд╣реЛ рдЬрд╕рд▓реЗ рднрдиреНрдЫ рдХрд┐ рд╣рд╛рдореА рд▓реБрдЖ рд▓рд┐рдкрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд╛рдордЧреНрд░реА рд╕реЗрд╡рд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред рд╣рд╛рдореА рдЗрдиреНрдЬрд┐рдиреНрд╕ рдЪрд░ рд▓рд┐рдиреНрдЫреМрдВ remote_addr рд░ рднрд┐рддреНрд░ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН string.formatред рдпреЛ рдпрд╕реНрддреИ рд╣реЛ sprintf, рдХреЗрд╡рд▓ рд▓реБрдЖрдорд╛, рдорд╛рддреНрд░ рд╕рд╣реАред рд░ рд╣рд╛рдореА рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рджрд┐рдиреНрдЫреМрдВред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рддрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд╕рд╛рд░рдорд╛ рдлрд░реНрдХреМрдВред рдХрд╕реИрд▓реЗ рдкрдирд┐ рд╣реЗрд▓реЛ рд╡рд░реНрд▓реНрдбрд▓рд╛рдИ рдЙрддреНрдкрд╛рджрдирдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиред рд╣рд╛рдореНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡рд╛ рдЕрдиреНрдп рдХрддреИ рдЬрд╛рдиреНрдЫ рд░ рдзреЗрд░реИрдЬрд╕реЛ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫред

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

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

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рджреБрдИ рд░реЗрдЦрд╛рд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ GET рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдЙрдард╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдХреБрдиреИ рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВ рдЫреИрдирдиреНред рдЕрд░реНрдХреЛ, рдорд╛рдиреМрдВ, рдХрд┐рд╡рд░реНрдб рд░ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рдЪрд┐рдиреНрд╣рдХреЛ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕рдмрд╛рдЯ, рд╣рд╛рдореА рдирд┐рдпрдорд┐рдд SQL рдХреНрд╡реЗрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред рдпреЛ рд╕рд░рд▓ рдЫред рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрдбрд╛рди рдЧрд░реНрджреИ resty.mysql, рдЬреБрди рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрд┐рдЯрдорд╛ рдЫред рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рд╕рдмреИ рддрдпрд╛рд░ рдЫред рд╣рд╛рдореА рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдЙрдиреЗ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдпреЛ рдпрд╣рд╛рдБ рдЕрд▓рд┐ рдбрд░рд▓рд╛рдЧреНрджреЛ рдЫ, рддрд░ рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрджрдЫред рдпрд╣рд╛рдБ 10 рд╕реАрдорд╛ рдЫред рд╣рд╛рдореА 10 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдирд┐рдХрд╛рд▓реНрдЫреМрдВ, рд╣рд╛рдореА рдЕрд▓реНрдЫреА рдЫреМрдВ, рд╣рд╛рдореА рдердк рджреЗрдЦрд╛рдЙрди рдЪрд╛рд╣рдБрджреИрдиреМрдВред рдореИрд▓реЗ SQL рдорд╛ рд╕реАрдорд╛ рдмрд╛рд░реЗ рдмрд┐рд░реНрд╕реЗрдВред

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕рдмреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЪрд┐рддреНрд░рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВред рд╣рд╛рдореА рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВ рд░ рд▓реБрдЖ рдЯреЗрдмрд▓ рднрд░реНрдЫреМрдВ reqs, рд░ рд╣рд╛рдореА рдЧрд░реНрдЫреМрдВ ngx.location.capture_multi.

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдпреА рд╕рдмреИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рд░ рдЬрд╡рд╛рдлрд╣рд░реВ рд╣рд╛рдореАрд▓рд╛рдИ рдлрд░реНрдХрд╛рдЗрдиреНрдЫред рд╕рдЮреНрдЪрд╛рд▓рди рд╕рдордп рд╕рдмреИрднрдиреНрджрд╛ рдврд┐рд▓реЛ рдПрдХ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдмрд░рд╛рдмрд░ рдЫред рдпрджрд┐ рд╣рд╛рдореА рд╕рдмреИрд▓реЗ релреж рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╢реВрдЯ рдЧрд░реНрдЫреМрдВ, рд░ рд╣рд╛рдореАрд▓реЗ рд╕рдпрд╡рдЯрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдпреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ релреж рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдЬрд╡рд╛рдл рдкрд╛рдЙрдиреЗрдЫреМрдВред

рд╣рд╛рдореА рдЕрд▓реНрдЫреА рднрдПрдХрд╛рд▓реЗ рд░ HTTP рд░ рдХреНрдпрд╛рд╕рд┐рдЩ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩреНрдЧ рд▓реЗрдЦреНрди рдЪрд╛рд╣рдБрджреИрдиреМрдВ, рд╣рд╛рдореА NGINX рд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХрд╛рдо рдЧрд░рд╛рдЙрдиреЗ рдЫреМрдБред рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрдиреБрднрдпреЛ, рддреНрдпрд╣рд╛рдБ рдЕрдиреБрд░реЛрдз рдерд┐рдпреЛ url/fetch, рдЙрд╣рд╛рдБ рдпрд╣рд╛рдБ рд╣реБрдиреБрд╣реБрдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫреМрдВ proxy_pass, рд╣рд╛рдореА рдХрд╣рд╛рдБ рдХреНрдпрд╛рд╕ рдЧрд░реНрдиреЗ, рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВ, рд░ рд╕рдмреИ рдХреБрд░рд╛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫред

рддрд░ рдпреЛ рдкрд░реНрдпрд╛рдкреНрдд рдЫреИрди, рд╣рд╛рдореАрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдбрд╛рдЯрд╛ рджрд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ JSON рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди, рд╕рдЬрд┐рд▓реИ, рджреБрдИ рд▓рд╛рдЗрди рдорд╛ рдЫред рд╣рд╛рдореА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рджрд┐рдиреНрдЫреМрдВ, рд╣рд╛рдореА JSON рджрд┐рдиреНрдЫреМрдВред

рддрд░ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдХрдард┐рдирд╛рдИ рдЫ: рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ JSON рдкрдвреНрди рдЪрд╛рд╣рдБрджреИрдирдиреНред рд╣рд╛рдореАрд▓реЗ рдлреНрд░рдиреНрдЯ-рдПрдиреНрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЖрдХрд░реНрд╖рд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╣рд╛рдореА рдпреЛ рд╕реБрд░реБрдорд╛ рдЧрд░реНрди рдЪрд╛рд╣рдБрджреИрдиреМрдВред рд░ рдПрд╕рдИрдУ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВрд▓реЗ рднрдиреНрдиреЗрдЫрдиреН рдХрд┐ рдпрджрд┐ рд╣рд╛рдореА рддрд╕реНрд╡рд┐рд░рд╣рд░реВ рдЦреЛрдЬреНрджреИрдЫреМрдВ, рддрдм рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдлрд░рдХ рдкрд░реНрджреИрдиред рд░ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреЗрд╣реА рд╕рд╛рдордЧреНрд░реА рджрд┐рдпреМрдВ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рднрдиреНрдиреЗрдЫрдиреН рдХрд┐ рд╣рд╛рдореНрд░реЛ рдЦреЛрдЬ рдЗрдиреНрдЬрд┐рдирд╣рд░реВрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЧрд░реНрджреИрдирдиреНред

рдпрд╕рдорд╛ рдХреЗ рдЧрд░реНрдиреЗ ? рдЕрд╡рд╢реНрдп рдкрдирд┐, рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ HTML рджрд┐рдиреЗрдЫреМрдВред рд╣рд╛рддрд▓реЗ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрдиреБ рд░рд╛рдореНрд░реЛ рд╣реЛрдЗрди, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫ lua-resty-template.

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

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

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╕рдмреИ рдХреБрд░рд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рд╣рд╛рдореАрд▓реЗ рдбрд╛рдЯрд╛ рд▓рд┐рдпреМрдВ рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд░реЗрдиреНрдбрд░ рдЧрд░реНрдпреМрдВ, рдлреЗрд░рд┐ рджреБрдИ рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЦреБрд╕реА рдЫ, рдЙрд╣рд╛рдБрд▓реЗ рдмрд┐рд░рд╛рд▓реЛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдпреЛред рд╣рд╛рдореАрд▓реЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдЙрд╕рд▓реЗ рдмрд┐рд░рд╛рд▓рд╛рдХреЛ рдмрдЪреНрдЪрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдлрд░ рд╕реАрд▓ рдкрдирд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреЛред рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди, рд╣реБрдирд╕рдХреНрдЫ рдЙрд╕рд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдпрд╣реА рдЦреЛрдЬрд┐рд░рд╣реЗрдХреЛ рдерд┐рдпреЛ, рддрд░ рдЙрд╕рд▓реЗ рдЖрдлреНрдиреЛ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд╕рд╣реА рд░реВрдкрдорд╛ рддрдпрд╛рд░ рдЧрд░реНрди рд╕рдХреЗрдиред

рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ рд╣рд╛рдореА рд╡рд┐рдХрд╛рд╕рдорд╛ рдЫреМрдВ рд░ рдЕрдЭреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдпреЛ рджреЗрдЦрд╛рдЙрди рдЪрд╛рд╣рдБрджреИрдиреМрдВред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЧрд░реМрдВред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, NGINX рд▓реЗ OpenResty рд╕рд░реНрддрд╣рд░реВрдорд╛ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдХрд╕рд░реА рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдЫ рд╣реЗрд░реМрдВ:

  • рдкрд╣рд┐рд▓реЛ рдЪрд░рдг - рдкрд╣реБрдБрдЪ, рдЬрдм рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рднрд░реНрдЦрд░реИ рдЖрдЗрдкреБрдЧреНрдпреЛ, рд░ рд╣рд╛рдореАрд▓реЗ рдЙрд╣рд╛рдБрд▓рд╛рдИ рд╣реЗрдбрд░рд╣рд░реВ, IP рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рд░ рдЕрдиреНрдп рдбреЗрдЯрд╛рджреНрд╡рд╛рд░рд╛ рд╣реЗрд░реНрдпреМрдВред рдпрджрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдордирдкрд░реНрджреИрди рднрдиреЗ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдХрд╛рдЯреНрди рд╕рдХреНрдЫреМрдВред рдпреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд╡рд╛ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореА рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдпрд╕ рдЪрд░рдгрдорд╛ рдХрд╛рдЯреНрди рд╕рдХреНрдЫреМрдВред
  • рдкреБрдирдГрд▓реЗрдЦрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╣рд╛рдореА рдХреЗрд╣рд┐ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдкреБрди: рд▓реЗрдЦреНрдЫреМрдВред
  • рд╕рд╛рдордЧреНрд░реАред рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд╕рд╛рдордЧреНрд░реА рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдЫреМрдВред
  • рд╣реЗрдбрд░ рдлрд┐рд▓реНрдЯрд░ред рд╣рд╛рдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░рд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫреМрдВред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ proxy_pass, рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рджрд┐рдиреБ рдЕрдШрд┐ рдХреЗрд╣реА рд╣реЗрдбрд░рд╣рд░реВ рдкреБрди: рд▓реЗрдЦреНрди рд╕рдХреНрдЫреМрдВред
  • рд╢рд░реАрд░ рдлрд┐рд▓реНрдЯрд░ред рд╣рд╛рдореА рд╢рд░реАрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
  • рд▓рдЧ - рд▓рдЧрд┐рдЩред рддрдкрд╛рдИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╣ рдмрд┐рдирд╛ elasticsearch рдорд╛ рд▓рдЧрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореНрд░реЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рддреНрдпрд╕рдорд╛ рдердкреНрдиреЗрдЫреМрдВ location, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╡рд░реНрдгрди рдЧрд░реНрдпреМрдВ, рд░ рддреНрдпрд╣рд╛рдБ рдирд┐рдореНрди рдХреЛрдб рд░рд╛рдЦреНрдпреМрдВ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рд╣рд╛рдореАрд╕рдБрдЧ рдХреБрдХреА рдЯреЛрдХрди рдЫ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рд╣реЗрд░реНрдЫреМрдВред рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рд╣рд╛рдореА рдкреНрд░рд╛рдзрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕реЛрдзреНрдЫреМрдВред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдЪрд╛рд▓рд╛рдХ рдЫрдиреН рд░ рдЙрдиреАрд╣рд░реВрд▓реЗ рдХреБрдХреА рдЯреЛрдХрди рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗрд░ рдЕрдиреБрдорд╛рди рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд░реЗрдбрд┐рд╕рдорд╛ рдкрдирд┐ рд░рд╛рдЦреНрдиреЗрдЫреМрдВ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

Redis рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреЛрдб рдзреЗрд░реИ рд╕рд░рд▓ рдЫ рд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реБ рднрдиреНрджрд╛ рдлрд░рдХ рдЫреИрдиред рдПрдХреИ рд╕рдордпрдорд╛, рд╕рдмреИ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ, рдпрд╣рд╛рдБ рд░ рддреНрдпрд╣рд╛рдБ, рдЕрд╡рд░реБрджреНрдз рдЫреИрдиред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред рд▓рдЧрднрдЧ gevent рдЬрд╕реНрддреИ, рддрд░ рд░рд╛рдореНрд░реЛ рдЧрд░реЗред

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрдлреИ рдЧрд░реМрдВ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рд╣рд╛рдореА рднрдиреНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдЕрдиреБрд░реЛрдзрдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдкрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╣рд╛рдореАрд▓реЗ POST рддрд░реНрдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ рд░ рд▓рдЧрдЗрди рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рдЫ рдХрд┐ рдЫреИрди рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВред рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдЧрд▓рдд рдЫрдиреН рднрдиреЗ, рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЪреБрдиреМрддреА рджрд┐рдиреНрдЫреМрдВред рд░ рдпрджрд┐ рд╕рд╣реА рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ Redis рдорд╛ рдЯреЛрдХрди рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдХреБрдХреА рд╕реЗрдЯ рдЧрд░реНрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН, рдпреЛ рджреБрдИ рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдкрдирд┐ рдЧрд░рд┐рдиреНрдЫ:

OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдк рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

рдЙрджрд╛рд╣рд░рдг рд╕рд░рд▓ рд░ рдЕрдиреБрдорд╛рдирд╛рддреНрдордХ рдЫред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╣рд╛рдореА рдорд╛рдирд┐рд╕рд╣рд░реВрд▓рд╛рдИ рдмрд┐рд░рд╛рд▓реЛ рджреЗрдЦрд╛рдЙрдиреЗ рд╕реЗрд╡рд╛ рдмрдирд╛рдЙрдБрджреИрдиреМрдВред рддрд░ рд╣рд╛рдореАрд▓рд╛рдИ рдХрд╕рд▓реЗ рдЪрд┐рдиреНрдЫред рддреНрдпрд╕реЛрднрдП рдЙрддреНрдкрд╛рджрдирдорд╛ рдХреЗ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдЬрд╛рдФрдВред

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

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

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

рдкрд░рд┐рдгрд╛рдорд╣рд░реВ

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

рдореИрд▓реЗ рд░реБрдЯрд┐рдЩ рдХрд╕рд░реА рд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рд╡рд┐рд╕реНрддреГрддрдорд╛ рдмрддрд╛рдЗрдирдБ, рдпреЛ рдзреЗрд░реИ рд▓рд╛рдореЛ рдХрдерд╛ рднрдпреЛред

рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрдмрд╛рдж!


Vladimir Protasov - OpenResty: NGINX рд▓рд╛рдИ рдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕рд░реНрднрд░рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди