рд╡рд┐рдХрд╛рд╕рдХреЛ рдПрдХ рд╡рд░реНрд╖ рдкрдЫрд┐ рдкреНрд░рд╕реНрддреБрдд рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди HTTP рд╕рд░реНрднрд░ рд░ рдорд▓реНрдЯрд┐рдкреНрд░реЛрдЯреЛрдХрд▓ рдкреНрд░реЛрдХреНрд╕реА рд╕рд░реНрднрд░рдХреЛ рдирдпрд╛рдБ рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ nginx 1.18.0, рдЬрд╕рд▓реЗ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ 1.17.x рднрд┐рддреНрд░ рд╕рдВрдЪрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрд╡рд╢реЛрд╖рд┐рдд рдЧрд░реНрдпреЛред рднрд╡рд┐рд╖реНрдпрдорд╛, рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ 1.18 рдорд╛ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрдореНрднреАрд░ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░ рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдЙрдиреНрдореВрд▓рдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╣реБрдиреЗрдЫрдиреНред Nginx 1.19 рдХреЛ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдЪрд╛рдБрдбреИ рдЧрдарди рд╣реБрдиреЗрдЫ, рдЬрд╕ рднрд┐рддреНрд░ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЬреЛрд╕рдБрдЧ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдп рдЫреИрди, рд╕рд┐рдлрд╛рд░рд┐рд╢ рдЧрд░рд┐рдПрдХреЛ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЬрд╕рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрддреНрдкрд╛рджрди Nginx Plus рдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рддреНрдпреЗрдХ рддреАрди рдорд╣рд┐рдирд╛рдорд╛ рдЧрдарди рдЧрд░рд┐рдиреНрдЫред

рдпрд╕ рдЕрдиреБрд╕рд╛рд░ рдЕрдкреНрд░рд┐рд▓ рд░рд┐рдкреЛрд░реНрдЯ Netcraft nginx рд╕рдмреИ рд╕рдХреНрд░рд┐рдп рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ 19.56% рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ (рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 20.73%, рджреБрдИ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 21.02%), рдЬреБрди рдпрд╕ рд╢реНрд░реЗрдгреАрдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛рдорд╛ рджреЛрд╕реНрд░реЛ рд╕реНрдерд╛рдирд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ (рдЕрдкрд╛рдЪреЗрдХреЛ рд╢реЗрдпрд░ 27.64%, рдЧреБрдЧрд▓ - 10.03%, рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред IIS - 4.77%)ред рдПрдХреИ рд╕рдордпрдорд╛, рд╕рдмреИ рд╕рд╛рдЗрдЯрд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрджрд╛, nginx рд▓реЗ рдЖрдлреНрдиреЛ рдиреЗрддреГрддреНрд╡ рдХрд╛рдпрдо рд░рд╛рдЦреНрдЫ рд░ рдмрдЬрд╛рд░рдХреЛ 36.91% (рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 27.52%) рдУрдЧрдЯреЗрдХреЛ рдЫ, рдЬрдмрдХрд┐ Apache рдХреЛ рд╢реЗрдпрд░ 24.73%, Microsoft IIS - 12.85%, Google - 3.42% рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред

рд╕рдВрд╕рд╛рд░рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рднреНрд░рдордг рдЧрд░рд┐рдПрдХрд╛ рд▓рд╛рдЦреМрдВ рд╕рд╛рдЗрдЯрд╣рд░реВ рдордзреНрдпреЗ, nginx рдХреЛ рд╢реЗрдпрд░ 25.54% рдЫ (рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 26.22%, рджреБрдИ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 23.76%)ред рд╣рд╛рд▓, рд▓рдЧрднрдЧ 459 рдорд┐рд▓рд┐рдпрди рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд░реВ Nginx (рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ 397 рдорд┐рд▓рд┐рдпрди) рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред рджреНрд╡рд╛рд░рд╛ рджрд┐рдИрдпреЛ W3Techs nginx рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рднреНрд░рдордг рдЧрд░рд┐рдПрдХрд╛ рдорд┐рд▓рд┐рдпрди рдордзреНрдпреЗ 31.9% рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЧрдд рд╡рд░реНрд╖ рдЕрдкреНрд░рд┐рд▓рдорд╛ рдпреЛ рд╕рдВрдЦреНрдпрд╛ 41.8% рдерд┐рдпреЛ, рдЕрдШрд┐рд▓реНрд▓реЛ рд╡рд░реНрд╖ - 38% (рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ http рд╕рд░реНрднрд░рдХреЛ рдЫреБрдЯреНрдЯреИ рд▓реЗрдЦрд╛рдХреЛ рд╕рдВрдХреНрд░рдордгрджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ)ред Apache рдХреЛ рд╢реЗрдпрд░ 43.6% рдмрд╛рдЯ 38.9% рдорд╛, рд░ Microsoft IIS рдХреЛ рд╢реЗрдпрд░ 8.6% рдмрд╛рдЯ 8.3% рдорд╛ рд╡рд░реНрд╖ рдорд╛ рдШрдЯреНрдпреЛред рд░реВрд╕ рдорд╛ nginx рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рднреНрд░рдордг рдЧрд░рд┐рдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ 78.9% рдорд╛ (рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ - 81%)ред

1.17.x рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╢рд╛рдЦрд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдХреНрд░рдордорд╛ рдердкрд┐рдПрдХрд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░рд╣рд░реВ:

  • рдирд┐рд░реНрджреЗрд╢рди рдердкрд┐рдпреЛ рд╕реАрдорд┐рдд_рд░реЗрдХ_ рдбреНрд░рд╛рдИ_рд░реБрди, рдЬрд╕рд▓реЗ рдЯреНрд░рд╛рдпрд▓ рд░рди рдореЛрдб рд╕рдХреНрд░рд┐рдп рдЧрд░реНрджрдЫ, рдЬрд╕рдорд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╢реЛрдзрдирдХреЛ рддреАрд╡реНрд░рддрд╛ (рджрд░ рд╕реАрдорд╛ рдмрд┐рдирд╛) рдорд╛ рдХреБрдиреИ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рд▓рд╛рдЧреВ рд╣реБрдБрджреИрди, рддрд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реАрдорд╛ рд╕реАрдорд╛рд╣рд░реВ рдирд╛рдШреЗрдХрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫ;
  • рдирд┐рд░реНрджреЗрд╢рди рдердкрд┐рдпреЛ рд╕реАрдорд╛_рдХреБрди_ рдбреНрд░рд╛рдИ_рд░реБрди, рдЬрд╕рд▓реЗ ngx_http_limit_conn_module рдореЛрдбреНрдпреБрд▓рд▓рд╛рдИ рдкрд░реАрдХреНрд╖рдг рд░рди рдореЛрдбрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрджрдЫ, рдЬрд╕рдорд╛ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдЫреИрди, рддрд░ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдЗрдиреНрдЫ;
  • рдирд┐рд░реНрджреЗрд╢рди рдердкрд┐рдпреЛ "auth_delay", рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ 401 рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрдХреЛ рд╕рд╛рде рдЕрдирд╛рдзрд┐рдХреГрдд рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рдврд┐рд▓рд╛рдЗ рдердкреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрдорд╛рди рдЧрд░реНрдиреЗ рддреАрд╡реНрд░рддрд╛ рдХрдо рдЧрд░реНрди рд░ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдЧрд░реНрдиред рдЖрдХреНрд░рдордгрд╣рд░реВ, рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рднрдПрдХреЛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрджрд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдордп (рд╕рдордп рдЖрдХреНрд░рдордг) рдХреЛ рдорд╛рдкрди рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрджреИред рдкрд╛рд╕рд╡рд░реНрдб, subquery рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛ J.W.T. (JSON рд╡реЗрдм рдЯреЛрдХрди);
  • "limit_rate" рд░ "limit_rate_after" рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛, рд╕рд╛рдереИ рд╕реНрдЯреНрд░рд┐рдо рдореЛрдбреНрдпреБрд▓рдХреЛ "proxy_upload_rate" рд░ "proxy_download_rate" рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ рдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ;
  • рдирд┐рд░реНрджреЗрд╢рдирдорд╛ grpc_pass рдареЗрдЧрд╛рдирд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдорд╛ рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред рдпрджрд┐ рдареЗрдЧрд╛рдирд╛ рдбреЛрдореЗрди рдирд╛рдордХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдирд╛рдо рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд╡рд░реНрдгрд┐рдд рд╕рдореВрд╣рд╣рд░реВ рдмреАрдЪ рдЦреЛрдЬреА рдЧрд░рд┐рдиреНрдЫ, рд░, рдпрджрд┐ рдлреЗрд▓рд╛ рдкрд░реЗрди рднрдиреЗ, рд╕рдорд╛рдзрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫ;
  • рдирдпрд╛рдБ рдЪрд░ рдердкрд┐рдпреЛ $proxy_protocol_server_addr ╨╕ $proxy_protocol_server_port, рдЬрд╕рдорд╛ PROXY рдкреНрд░реЛрдЯреЛрдХрд▓ рд╣реЗрдбрд░рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рд╕рд░реНрднрд░ рдареЗрдЧрд╛рдирд╛ рд░ рдкреЛрд░реНрдЯ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫ;
  • рдореЛрдбреНрдпреБрд▓ рдорд╛ ngx_stream_limit_conn_module рдЪрд░ рдердкрд┐рдпреЛ $limit_conn_status, рдЬрд╕рд▓реЗ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдЧрд░реНрдиреЗ рдкрд░рд┐рдгрд╛рдо рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ: PASSED, REJECTED рд╡рд╛ REJECTED_DRY_RUN;
  • рдореЛрдбреНрдпреБрд▓ рдорд╛ ngx_http_limit_req_module рдЪрд░ рдердкрд┐рдпреЛ $limit_req_status, рдЬрд╕рд▓реЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЖрдЧрдорди рджрд░ рд╕реАрдорд┐рдд рдЧрд░реНрдиреЗ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN рд╡рд╛ REJECTED_DRY_RUN;
  • рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдореЛрдбреНрдпреБрд▓ рднреЗрд▓рд╛ рд╣реБрдиреНрдЫ ngx_http_postpone_filter_module;
  • рдмрд┐рд▓реНрдЯ-рдЗрди рдкрд░реНрд▓ рджреЛрднрд╛рд╖реЗрджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ $r->internal_redirect() рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ "location" рдмреНрд▓рдХрд╣рд░реВ рдирд╛рдордХ рдЯрдЧрд▓ рдЧрд░реНрдиреЗ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рдЕрдм рдПрд╕реНрдХреЗрдкреНрдб рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрд╕рдБрдЧ URI рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ;
  • "рдЕрдкрд╕реНрдЯреНрд░реАрдо" рд╕реЗрдЯрд┐рдЩ рдмреНрд▓рдХрдорд╛ "рдЕрдкрд╕реНрдЯреНрд░реАрдо" рдирд┐рд░реНрджреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛рд╣реНрдпрд╛рд╕┬╗ рдХреНрд▓рд╛рдЗрдиреНрдЯ-рд╕рд░реНрднрд░ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╕рдБрдЧ рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд┐рдЩ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЦрд╛рд▓реА рдХреБрдЮреНрдЬреА рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдПрдХрд╕рдорд╛рди рд╕рдиреНрддреБрд▓рди рдореЛрдб (рд░рд╛рдЙрдиреНрдб-рд░реЛрдмрд┐рди) рдЕрдм рд╕рдХреНрд░рд┐рдп рдЫ;
  • ioctl(FIONREAD) рдХрд▓ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ рд╕рдордпрдХреЛ рд╕рд╛рде рджреНрд░реБрдд рдЬрдбрд╛рдирдмрд╛рдЯ рдкрдвреНрдирдмрд╛рдЯ рдмрдЪреНрдиред

рд╕реНрд░реЛрдд: opennet.ru

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