рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ Airbnb рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрдврд╝рддреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрдЦ рдХреЗ рд╕рд╛рде рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд░реНрд╡рд░ рднрд╛рдЧреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди, рдХрдВрдкрдиреА рдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдкрдиреЗ рдкреВрд░реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЛ рдПрдХ
рд╕рдорд╛рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗрдм рдкреЗрдЬ рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкрдЯрд░рд┐рдпреЛрдВ рдкрд░ рд░реВрдмреА рдХрд╛ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдкрд░рд┐рддреНрдпрд╛рдЧ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Airbnb рдХреА рдпреЛрдЬрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Node.js рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдирдИ рд╕реЗрд╡рд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реЗрд╡рд╛ рд╕рднреА Airbnb рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ HTML рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧреАред рдкреНрд░рд╢реНрди рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреИрдХреЗрдВрдб рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░реВрдмреА рдпрд╛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ Node.js рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ Airbnb рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдФрд░ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

Node.js рдордВрдЪ
Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд╣рдЬрд╛рд░реЛрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рд╣рд░ рдЬрдЧрд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рдкрд╛рд╕ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╕рд╛рде рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд╣рд▓реНрдХреЗ рдореЙрдбрд▓ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ (рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣рдо "рд╕рдорд╛рдВрддрд░" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╕рдорд╛рдВрддрд░" рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, "рд╕рдорд╛рдирд╛рдВрддрд░" - "рд╕рдорд╛рдирд╛рдВрддрд░" рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП)ред рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред
рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ (SSR) рдореВрд▓ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Node.js рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдХреЛрдб рдХреЛ рдПрдХ рд╣реА рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (I / O рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд), рдХреЛрдб рдХреЛ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд╣реАрдВред Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ I / O рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдХрд╛ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рднрд╛рдЧ рдмрдврд╝рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЬрд╡рд╛рдмрджреЗрд╣реА рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЗрд░реА рдпрд╛ рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд░рд▓ рдореЙрдбрд▓ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рднрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдЧрдгрдирд╛ рд╕рдВрдЪрд╛рд▓рди рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рджреЗрд░реА рдХреЛ рдмрдврд╝рд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рдгрд╛рд▓реА рдереНрд░реВрдкреБрдЯ рдХреЗ рд▓рд╛рдн рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред
Promise.all([fn1, fn2])
рдлреЙрд░реНрдо рдХреА рдПрдХ рдХрдорд╛рдВрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрджрд┐
fn1
рдпрд╛
fn2
I / O рд╕рдмрд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдЪрд╛рд▓рди рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрдирдпрджрд┐
fn1
рдФрд░
fn2
рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХрд╛рд░реНрдп рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрдПрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рджреВрд╕рд░реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ Node.js. рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреЗрд░реА рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рд╕рдорд╡рд░реНрддреА рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрдИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдЧрдВрднреАрд░ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд▓реЛрдб рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХрдХрд░рдг рдХреЗ рд╕рд╛рде рдФрд░ рднреА рдХрдард┐рди рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реАрдЬрд╝ рдПрдХ рдХрд╛рд░реНрдп рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдмрдиреА рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реЗ рдорд┐рд▓рддреА рдЬреБрд▓рддреА рд╣реИ:
renderPromise().then(out => formatResponsePromise(out)).then(body => res.send(body))
ред рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдЖрддреА рд╣реИ, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╕реНрд╡реАрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдз рдЬреЛ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдорд╕реНрдпрд╛рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рджреЛрдЧреБрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рддрдирд╛ рдХрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдФрд░ рднреА рдмрджрддрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, SSR рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╛рди рдпрд╛ рдмрд╣реБрдд рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЧрдВрднреАрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдРрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг, рдЙрдирдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рдмрд╣реБ-рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛрддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЖрд╡реЗрджрди рдХреА рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдпрд╛ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рд▓реАрдХ, рдФрд░, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордпред
рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддреА рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдм рдХреБрдЫ рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрдо рднрд╛рд░ рдХреЗ рддрд╣рдд рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рд╕рд┐рдХ рдиреЛрдб.рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдЗрд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдореГрджреНрдз рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдПрдХ рд╕рд╛рде рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЙрдбрд▓ рдЕрдкрдиреЗ рд╕рднреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдлрд╛рдпрджреЗ рдХреА рднрд░рдкрд╛рдИ, рдЬреЛ рдпрд╛ рддреЛ рдмрд╣реБрдд рдХрдо рд╣реИрдВ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИрдВред
рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рд╣рдорд╛рд░реА рдирдИ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛, рд╣рд╛рдЗрдкрд░рд▓реВрдк, рд╡рд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╕реЗрд╡рд╛ рд╣реЛрдЧреА, рдЬреЛ Airbnb рдпреВрдЬрд░реНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧреАред рдирддреАрдЬрддрди, рдЗрд╕рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рд╣рд╛рдЗрдкрд░рд▓реВрдк рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкреЗрд╢ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо -
рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред
рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рд╣рдорд╛рд░реА рдирдИ рд╕реЗрд╡рд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рд╢реБрджреНрдз рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдЗрд╕реЗ рд╣рдорд╛рд░реА рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рд░реЗрд▓ рд╕реЗрд╡рд╛ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореЛрдиреЛрд░реЗрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ HTML рд╕реНрдирд┐рдкреЗрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ "рд╕реНрдирд┐рдкреЗрдЯ" рдкреГрд╖реНрда рдХреЗ рд╢реЗрд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд░реЗрд▓ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рд▓реЗрдЖрдЙрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд░рд╛рд╕рдд рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде, рдПрдХ рдкреГрд╖реНрда рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдИрдЖрд░рдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд░реЗрд▓ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд╛рдЗрдкрд░рд▓реВрдк рдФрд░ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдореЗрдВ рд╕рдорд╛рди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рд╣реЛрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛, рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛, рдЗрд╕рдХреА рд╕рдордЭ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИред
рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдЖрддреЗ рд╣реИрдВ, рдореЛрдиреЛрд░реЗрд▓, рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрди рдЧреБрдгреЛрдВ рдФрд░ рдШрдЯрдХ рдирд╛рдореЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ HTML рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореЛрдиреЛрд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рддрдм рдЗрд╕ рдХреЛрдб рдХреЛ рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрддрд╛ рд╣реИред

рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ рд╕рдорд╛рдкреНрдд рдкреГрд╖реНрда рднреЗрдЬрдирд╛рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдореЗрдВ рдПрдХ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ (рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордпрдмрд╛рд╣реНрдп рд╣реЛ рд╕рдХрддреА рд╣реИ), рдПрдХ рдмреИрдХрдмреИрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рдкрд░ рдЙрддреНрдкрдиреНрди HTML рдХреЗ рдмрд┐рдирд╛ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкреГрд╖реНрда рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рд╕рдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдлрд▓ред рдпрд╣ рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЧрдпрд╛ рдХрд┐ рд╣рдордиреЗ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ред рдирддреАрдЬрддрди, рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдФрд░ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдШрдЯрдирд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдордпрдмрд╛рд╣реНрдп рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ, рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рдкреА 95 рддрдХ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдиреЗ 5% рд╕реЗ рдХрдо рдХреА рдмреЗрд╕ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред
рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрдм рдЯреНрд░реИрдлрд╝рд┐рдХ рдЪрд░рдо рдореВрд▓реНрдпреЛрдВ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рдереЗ рдХрд┐ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рд▓рд┐рдП 40% рддрдХ рдЕрдиреБрд░реЛрдз рдореЛрдиреЛрд░реЗрд▓ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд░ рджрд┐рдП рдЧрдП рдереЗред рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреА рдУрд░ рд╕реЗ, рд╣рдордиреЗ
BadRequestError: Request aborted
рдЪреЛрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрд╛
BadRequestError: Request aborted
рдирд┐рдЪрд▓реА рдКрдВрдЪрд╛рдИ рдХреА
BadRequestError: Request aborted
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рдереАрдВ, рдЬрдмрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдХрд╛рд░рдг, рд╢реЗрд╖ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдереАрдВред
рдкреАрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди (рд▓рд╛рд▓ рд░реЗрдЦрд╛рдПрдБ)рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЬреНрдпрд╛рджрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛, рдЙрдиреНрд╣реЗрдВ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдХрд╖реНрдЯрдкреНрд░рдж trifles рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред рд╣рдордиреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ рд╕рдВрдХрд▓рди рдФрд░ рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрддреЛрдВ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЙрдиреНрдЪ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдард┐рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдг рдзреАрдореА рд╣реИред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдирдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдиреЛрдб рд░рд┐рд▓реАрдЬ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬреЛ рд╕реЗрд╡рд╛ рдХреА рдзреАрдореА рд╢реБрд░реВрдЖрдд рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ред
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдЬреЛ рдХреБрдЫ рд╣реЛ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдереА рдХрд┐ рдЦрд░рд╛рдм рд▓реЛрдб рд╕рдВрддреБрд▓рди рдпрд╛ рд╕рдорд╛рдзрд╛рди рдХреА рддреИрдирд╛рддреА рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рднрд╛рд░ рдХреЗ рдХрд╛рд░рдг рджреЗрд░реА рдмрдврд╝ рд░рд╣реА рдереАред рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕рд╛рде рд╣реА рдЙрди рдорд╛рдорд▓реЛрдВ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рд╕рд╣рд╛рдпрдХ рдкрд░рдд рдЬреЛрдбрд╝реА, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред

рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╣рдордиреЗ рд╕реЗрд╡рд╛ рдХреА рдзреАрдореА рд╢реБрд░реБрдЖрдд рдХреЛ рджреЗрд░реА рдХрд╛ рдЕрдкрд░рд╛рдзреА рдорд╛рдирд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╕реАрдкреАрдпреВ рд╕рдордп рдХреЗ рд╕рд╛рде рд▓рдбрд╝рддреЗ рд╣реБрдП рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИред рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдПрдХ рд╕рд╛рде рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХрд╛рд░рдг рджреЗрд░реА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЛрдб рдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдХрд╛рд░рдг рджреЗрд░реА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддреА рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓реЛрдб рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдХрд┐
BadRequestError: Request aborted
рдХреЛ рдПрдХ рдзреАрдореА рдкреНрд░рдгрд╛рд▓реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рджреНрд╡рд╛рд░рд╛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реА, рдФрд░ рддрдм рд╣реБрдИ рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рд╢рд░реАрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝ рд╕рдХреЗред рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд╣рдореЗрдВ рдЙрд╕ рдбреЗрдЯрд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдПрдХ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реБрджреНрдз рдкреНрд░рддрд┐рдкрд╛рджрди рдирд┐рдХрд▓рд╛, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзрд┐рдд рдХрд╛рд░реНрдп рдкрд░ рд▓реМрдЯ рдЖрдП, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдирд┐рдХрд▓рд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рд╣реИ, рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХрдИ рд╕реМ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдФрд╕рддрди, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрдордХрджрд╛рд░ рдерд╛, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдиреЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред

рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛рд╣рдордиреЗ рдорд╛рдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рдЕрдиреБрднрд╡ рдерд╛ред рд╣рдо рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ (
nginx ) рдФрд░ рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ (
HAProxy ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕рд┐рдВрдЧ рдФрд░ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ
рдорд▓реНрдЯреА-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Node.js
рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рд╣рдо рдПрдХ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгрдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╣рд░ рд╕рдордп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╕реНрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рднреЗрдЬреЗ рдЧрдП рдЕрдиреБрд░реЛрдз рдХреЗ рд╢рд░реАрд░ рдХреЛ рдкрдврд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдореЛрдиреЛрд░реЗрд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдиреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ)ред рдпрджреНрдпрдкрд┐ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдпрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдпрд╣ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдкреАрдб рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдмрдлрд░рд┐рдВрдЧ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╕рддреНрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдЧреЗрдВрдбрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдкрдиреЗ рд░реЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЧреЗрдВрдбрд╛ рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд
рд╕рд┐рджреНрдзрд╛рдВрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдирдЧрдиреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред Nginx рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдмрдлрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕рддреНрд░ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░, рд▓реВрдкрдмреИрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред

Nginx рдмрдлрд╝рд░реНрд╕ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдиреЛрдб рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИрдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ nginx рдЕрдм рдкрдврд╝рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИ, рд╣рдо рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХ рд╕рдорд╛рди рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред
Nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрджреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЛрдб рдХрд░рдирд╛рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдкрд░рддреЗрдВ рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рднрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред Nginx рдореЗрдВ рдпрд╣ рд╕рдм рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ Node.js. рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд (рдпрджреНрдпрдкрд┐ рдЫреЛрдЯрд╛) рдХрд╛рд░реНрдпрднрд╛рд░ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрд░реЛрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдЧрд▓рд╛ рд╕реБрдзрд╛рд░ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
cluster
рдореЙрдбреНрдпреВрд▓ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
cluster
рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдПрдХрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХреБрд╢рд▓ рд╡рд┐рддрд░рдг рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдВрдм рдореЗрдВ рдХрдо рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рд╣реЛрдиреЗ рдкрд░ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдЪреНрдЫрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВред
рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рдХрдиреЗрдХреНрд╢рди рдЬрд┐рдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рдордп рдХреА рд▓рд╛рдЧрддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдЕрдиреБрд░реЛрдз рдкрд╣рд▓реЗ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИ, рднрд▓реЗ рд╣реА рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛред

рдЕрд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднрд╛рд░рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдиреАрдЪреЗ рджреА рдЧрдИ рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИред
рдзрд╛рдЧреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╡рд┐рддрд░рдгрдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрдо рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░рдЦрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЬрдм рд╡рд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рди рд╣реЛред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╣рдо HAProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
HAProxy рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЛрдб рд╕рдВрддреБрд▓рдирдЬрдм рд╣рдордиреЗ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдкрд░ рд▓реЛрдб рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HAProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рддреЛ рд╣рдордиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЪреЛрдЯрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА
BadRequestErrors
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд▓рдВрдм рднреА рдореБрдЦреНрдп рдХрд╛рд░рдг рдереЗ; рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рджреЗрд░реА рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдерд╛ рдХрд┐ рдЕрдм рдХреЗрд╡рд▓ 2% рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ 5% рдирд╣реАрдВ, рдПрдХ рд╣реА рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рдеред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ 40% рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рд╕рдордпрдмрд╛рд╣реНрдп 2% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдЬ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдХреНрд░реАрди рдХреЛ рдмрд╣реБрдд рдХрдо рдмрд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд┐рд░рддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдорд╣рддреНрд╡ рдХреА рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╡рд╣реА рдмреИрдХрдЕрдк рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рд╛рдЗрдкрд░рдиреЛрд╡рд╛ рдХреЗ рдкрд╛рд╕ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг
рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ nginx, HAProxy рдФрд░ Node рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ nginx рдФрд░ HAProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдПрдХ рд╕рдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ , рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЙрд╕ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрддреНрдкрд╛рджрди рдореЗрдВ, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рдо рд░рдирд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛, рдЕрдзрд┐рдХ рдмрд╛рд░, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕)ред
рдиреЗрдЧрдиреЗрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрд╣реБрдд рдорд╛рдирдХ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреЛрд░реНрдЯ 9000 рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, HAProxy рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкреЛрд░реНрдЯ 9001 (рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рд╣рдо рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рд░реНрд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕реАрдзреЗ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП
/ping
рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред nginx ,
worker_processes
1, nginx тАФ HAProxy Node-. , , , Hypernova, ( ). .
Node.js
cluster
. HAProxy,
cluster
, .
pool-hall . тАФ , , ,
cluster
, .
pool-hall
, .
HAProxy , 9001 , 9002 9005. тАФ
maxconn 1
, . . HAProxy ( 8999).
HAProxyHAProxy . ,
maxconn
.
static-rr
(static round-robin), , , . , round-robin, , , , , . , , . .
, , . ( ). , , , , . , , .
HAProxy
HAProxy. , , , . , , ( ) . , ,
cluster
. , .
ab
(Apache Benchmark) 10000 . - . :
ab -l -c <CONCURRENCY> -n 10000 http://<HOSTNAME>:9000/render
15 4- -,
ab
, . (
concurrency=5
), (
concurrency=13
), , (
concurrency=20
). , .
, -, . , . , , , , . , , , .
, тАФ .
maxconn 1
, , .
HTTP TCP , , , . ,
maxconn
, . , , (, , ).
, , , , , , .
тАФ , .
option redispatch
retries 3
, , , , , , . .
, - , . , . , , . 100 , 10 , , . , . ,
accept
.
, (
backlog ) , . SYN-ACK (
, , , ACK ). , , , , .
, , , , . , , 1.
maxconn
. 0 , , , , , . , . - , , .
abortonclose
, . ,
abortonclose
. nginx.
, , . ( ) , , , , , . HAProxy , , ( ). , , , HTML. , , . , , ( , , ). , , . , , , . HAProxy, MAINT HAProxy.
, , ,
server.close
Node.js , HAProxy , , , . , , , , , .
, ,
balance first
, (
worker1
) 15% , , ,
balance static-rr
. , ┬л┬╗ . . (12 ), , , - . , , , ┬л┬╗ ┬л┬╗. .
, , Node
server.maxconnections
, ( , ), , , , . ,
maxconnection
, , , . JavaScript, ( ). , , , . , , , HAProxy Node , . , , .
, , , ,
.
Node.js . , , , -. Node.js . , , , , , , , nginx HAProxy.
, Airbnb , Node.js .
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! ?