WSGI рд╕рд░реНрд╡рд░ рдХрд╛ рдкрд░рд┐рдЪрдп: рднрд╛рдЧ рдПрдХ

рдпрд╣ рд▓реЗрдЦ рдХреЗрд╡рд┐рди рдЧреЛрд▓реНрдбрдмрд░реНрдЧ рдХреЗ рд▓реЗрдЦ "рдкрд╛рдпрдерди рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдкрд░рд┐рдЪрдп: рднрд╛рдЧ 1" рдмреНрд▓реЙрдЧ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИ редappdynamics.com/engineering/an-introduction-to-python-wsgi-servers- part-1 рдЫреЛрдЯреЗ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдЫреЛрдЯреЗ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП

рдЫрд╡рд┐

рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдкрд╛рдпрдерди рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕


рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рд╕рд░реНрд╡рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗред WSGI ( рдПрдХ рдареЛрд╕ "рдЫ" рдХреЗ рд╕рд╛рде "рд╡реНрд╣рд┐рдЬрд╝-рдЬреА" рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛) 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдлрд┐рд▓рд┐рдк рдЬреЗред рдИрдмреА (рдЗрдпрд╛рди рдмрд╛рдЗрдХрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Apache рдореЙрдбреНрдпреВрд▓, рдЬрд┐рд╕реЗ mod_python рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ 90 рдХреЗ рджрд╢рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧреНрд░рд┐рдЧреЛрд░реА рдЯреНрд░реБрдмреЗрддреНрд╕реЛрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕ рд╕рдордп рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдпрдерди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, mod_python рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдерд╛ ред рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╛рдпрдерди рдХреЛрдб рдЪрд▓рд╛ рд╕рдХреЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдерд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдПрдХ рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

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

рд╕рд░реНрд╡рд░ рдФрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ


рд╕рд░рд▓рддрдо рдорд╛рдорд▓реЗ рдореЗрдВ, WSGI рдореЗрдВ рджреЛ рдореБрдЦреНрдп рд╕рдВрд╕реНрдерд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. рд╡реЗрдм рд╕рд░реНрд╡рд░ ( Nginx, Apache , рдЖрджрд┐);
  2. рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред

рдХрд╛рдо рд╕рд┐рджреНрдзрд╛рдВрдд:


рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдирд╛ рдФрд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ HTTP рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдлрд┐рд░ рдЖрд╡реЗрджрди рдкрдХреНрд╖ рдкрд░ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред

рдЫрд╡рд┐

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

рдпрд╣рд╛рдБ рдЪреМрдЦрдЯреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ WSGI рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ:


рдХреНрдпреЛрдВ WSGI?


рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, "рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди WSGI рдХреНрдпреЛрдВ?" ред рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ:

  • WSGI рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЪреМрдЦрдЯреЗ рд╣рдЬрд╛рд░реЛрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдЙрдиреНрд╣реЗрдВ (рдЕрдиреБрд░реЛрдзреЛрдВ) рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдорд╛рд░реНрдЧ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред
  • рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ (Django рдпрд╛ рдХреБрдЫ рдФрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рд╢реЗрд╖ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ WSGI рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред
  • WSGI , рдЖрдкрдХреЛ WSGI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рд╡реЗрдм рд╕реНрдЯреИрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред

WSGI рд╕рд░реНрд╡рд░ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдХреБрдЫ рдПрдХ рдлреБрд▓рд╕реНрдЯреИрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Gunicorn рдмреЙрдХреНрд╕ рдХреЗ рдареАрдХ рдмрд╛рд╣рд░ Django рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдЬ рдмрд╛рдЬрд╛рд░ рдкрд░ рдЫрд╣ WSGI рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: Bjoern , uWSGI , mod_wsgi , Meinheld , CherryPy рдФрд░ Gunicorn ред

рдЬреЛрдПрд░реНрди


рдмреЛрдЬрд╝рд░реНрди рд╕реАред рдореЗрдВ рд▓рд┐рдЦрд╛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ WSGI рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЬрдореАрди рд╕реЗ рдЫреЛрдЯрд╛ рдФрд░ рддреЗрдЬрд╝ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд░реЗрд╣рд╛рди рдбрд╛рд╣рд▓ (Node.js рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛) рдФрд░ рдорд╛рд░реНрдХ рд▓реЗрд╣рдорди рдХреЗ рд▓рд┐рдмрдбреЗ рд▓реВрдк рд▓реВрдк рд╕реЗ http_parser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХреЗрд╡рд▓ 18 KB рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдЗрд╕рдореЗрдВ рдХреЛрдб рдХреА 800 рд╕реЗ рдХрдо рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ 1 рдПрдордмреА рд╕реЗ рдХрдо рд░реИрдо рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдХреЛрд░рдЯрд╛рдЗрди рдпрд╛ рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Bjoern WSGI рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ WSGI рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреЛрдЬрд╝рд░реНрди рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯреНрд╕ рдпрд╛ рдЯреАрд╕реАрдкреА рдкрддреЗ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдмреВрдЬрд╝рд░реНрди рдХреЛ рдЧреБрдирдХреЛрд░реНрди рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдФрд░ рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдФрд░ рдореАрдирд▓рд╛рдЗрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдлреВрд▓рд╛ рд╣реБрдЖ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреА рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рд╣реИред

uWSGI


рдЫрд╡рд┐

uWSGI рдХреЛ Unbit (рдЗрдЯрд▓реА) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдПрдХ рдлреБрд▓рд╕реНрдЯреИрдХ рд╕рдорд╛рдзрд╛рди рдмрдирдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдерд╛ред рдпрд╣ WSGI рдорд╛рдирдХ рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдВрдкрдиреА рдХреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рд╡реНрдпрд╛рдкрдХ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛, рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдЖрдкрдХреЛ рд╡реЗрдм рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдИ рд▓реЛрдЧ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдкрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдЗрд╕реЗ рдХреБрдЫ рдлреВрд▓рд╛ рд╣реБрдЖ рдкрд╛рддреЗ рд╣реИрдВред рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, uWSGI рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ Lua, рдкрд░реНрд▓, рд░реВрдмреА рдФрд░ рдЕрдиреНрдп рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

mod_wsgi


mod_wsgi - рдЧреНрд░рд╛рд╣рдо рдбрдореНрдкрд▓рдЯрди (рдкреВрд░реНрд╡ рдореЗрдВ mod_python рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ) рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЕрдкрд╛рдЪреЗ HTTP рд╕рд░реНрд╡рд░ рдореЙрдбреНрдпреВрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП WSGI рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкрд╛рдпрдерди 2 рдФрд░ рдкрд╛рдпрдерди 3 рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддред CGI , FastCGI рдФрд░ mod_python рдЬреИрд╕реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдЗрд╕реЗ рдЕрдкрд╛рдЪреЗ рдореЙрдбреНрдпреВрд▓ рдпрд╛ mod_wsgi рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд╛рдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЕрдиреНрдп рд▓рд╛рдн:

тАв рдЖрдкрдХреЛ рдкреВрд░реНрдг рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
тАв рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореМрдЬреВрджрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ mod_wsgi рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдзреАрдорд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдкреБрд░рд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ mod_wsgi рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрд╛рдЪреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Meinheld


рдпреБрддрд╛рдХрд╛ рдорд╛рддреНрд╕реБрдмрд╛рд░рд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд, Meinheld рдПрдХ WSGI- рд╕рдВрдЧрдд рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I / O рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдХреЗрд╡ рдФрд░ рдЧреНрд░реАрдирд▓реЗрдЯ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди HTTP рд╕рд░реНрд╡рд░ рдпрд╛ Gunicorn рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореАрдирд▓рд╛рдЗрди рдореЗрдВ рдЧреНрд░реАрдирд▓реЗрдЯ рдирд╛рдордХ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдШрдЯрдХ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА GitHub рдкрд░ рд╕реНрдерд┐рдд рд╣реИ ред рдореЗрдЗрдирд╣реЗрд▓реНрдб рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╡рд░реНрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХрдИ рдордВрдХреАрдкреИрдХ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред

CherryPy


рдЫрд╡рд┐
рдЪреЗрд░реАрдкреА - рдмреЗрд╣рддрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрд░ рдкрд╛рдпрдерди рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪреЗрд░реАрдкреА рднреА рдПрдХ WSGI рдереНрд░реЗрдб- рдкреВрд▓рд┐рдд рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ HTTP / 1.1 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЪреЗрд░реАрдкреА рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдЕрдкрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА, рд╣рд╛рдИ-рд╕реНрдкреАрдб, рдереНрд░реЗрдб-рдкреВрд▓реЗрдб HTTP рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рддреА рд╣реИред рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╣реИ:

тАв рддреНрд╡рд░рд┐рдд, рдЖрд╕рд╛рди рд╕реЗрдЯрдЕрдк;
тАв рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА;
тАв рдЕрдкрдиреЗ рдкрд╛рдпрдерди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдзрд╛рди;
тАв рдПрд╕рдПрд╕рдПрд▓ рд╕рдорд░реНрдердиред

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

Gunicorn


рдЫрд╡рд┐

Gunicorn рдПрдХ WSGI рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕реЗ UNIX рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд╛рдо "рдЧреНрд░реАрди рдпреВрдирд┐рдХреЙрд░реНрди" рд╢рдмреНрджреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рдВрдпреБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдЯ рдкрд░ рд╣реА рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЧреЗрдВрдбрд╛ рд╣реИред рд░реВрдирд┐рдХ рд╕реЗ рдпреВрдирд┐рдХреЙрд░реНрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЧреБрдирд┐рдХреЙрд░реНрди рдХреЛ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рддреЗрдЬрд╝, рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди, рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд░реВрдк рд╕реЗ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдиреНрдпреБрдирдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдирд┐рдХреЙрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдирд┐рдЧреНрдиреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдЗрд╕ рд╕рдордп рдЫрд╣ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп WSGI рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ : Bjoern , uWSGI , mod_wsgi , Meinheld , CherryPy рдФрд░ Gunicorn ред рдЖрдкрдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рднрд╛рдЧ рдЗрди рдЫрд╣ WSGI рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдЧрд╛ред

Source: https://habr.com/ru/post/hi426957/


All Articles