Nginx 1.26.0 lanzado con soporte HTTP/3

Despois dun ano de desenvolvemento, publicouse unha nova rama estable do servidor HTTP de alto rendemento e do servidor proxy multiprotocolo nginx 1.26.0, que incorpora os cambios acumulados na rama principal 1.25.x. No futuro, todos os cambios na rama estable 1.26 estarán relacionados coa eliminación de erros graves e vulnerabilidades. En breve formarase a rama principal de nginx 1.27, na que continuará o desenvolvemento de novas funcións. Para os usuarios comúns que non teñen a tarefa de garantir a compatibilidade con módulos de terceiros, recoméndase utilizar a rama principal, en base á cal se forman lanzamentos do produto comercial Nginx Plus cada tres meses.

Segundo un informe de marzo de Netcraft, preto de 243 millóns de sitios web están executando Nginx (289 millóns hai un ano). Nginx úsase no 18.15% de todos os sitios activos (hai un ano 18.94%, hai dous anos 20.08%), o que corresponde ao segundo lugar en popularidade nesta categoría (a cota de Apache corresponde ao 20.09% (hai un ano 20.52, dous anos). hai 22.58%), Cloudflare - 14.12% (11.32%, 10.42%), Google - 10.41% (9.89%, 8.89%). Ao mesmo tempo, ao considerar todos os sitios, nginx mantén o seu liderado e ocupa o 22.31% do mercado. (hai un ano 25.94%, hai dous anos - 31.13%), mentres que a cota de Apache corresponde ao 20.17% (20.58, 23.08%), Cloudflare - 11.24% (10.17, 5.49%), OpenResty (plataforma baseada en nginx e LuaJIT7.93) - % (7.94 %, 8.01 %).

Entre os millóns de sitios máis visitados do mundo, a participación de nginx é do 20.63% (hai un ano 21.37%, hai dous anos 21.79%), Cloudflare - 22.59% (hai un ano 21.62%), Apache httpd - 20.09% (21.18%) %). Segundo W3Techs, nginx úsase no 34.3% dos millóns de sitios máis visitados, en abril do ano pasado esta cifra foi do 34.5%, o ano anterior, do 33.1%. A cota de Apache caeu ao longo do ano do 32.2% ao 30.1% e a de Microsoft IIS baixou do 5.6% ao 4.8%. A cota de Node.js aumentou do 2.4% ao 3.2% e a de LiteSpeed ​​do 11.8% ao 12.9%.

As melloras máis notables engadidas durante o desenvolvemento da rama anterior 1.25.x:

  • Engadiuse o módulo ngx_http_v3 con soporte experimental para o protocolo HTTP/3. Para construír o módulo, ofrécese a opción "--with-http_v3_module". HTTP/3 define o uso do protocolo QUIC (Quick UDP Internet Connections) como transporte para HTTP/2. QUIC é unha extensión do protocolo UDP que admite a multiplexación de varias conexións e proporciona métodos de cifrado equivalentes a TLS/SSL. O protocolo foi creado en 2013 por Google como unha alternativa á combinación TCP+TLS para a Web, resolvendo problemas con longos tempos de configuración de conexión e negociación en TCP e eliminando os atrasos cando se perden paquetes durante a transferencia de datos.
  • Engadiuse unha directiva separada "http2" para activar selectivamente o protocolo HTTP/2 en conexión cos servidores (pódese usar en bloques de "servidor" separados). O parámetro "http2" da directiva "listen" quedou en desuso.
  • Reforzouse a protección contra a actividade anormal dos clientes HTTP/2 e, en particular, contra os ataques DoS da clase "Reinicio rápido", nos que se crean un gran número de fíos de restablecemento inmediato dentro dunha única conexión HTTP/2. Na configuración predeterminada, estes ataques están limitados polo límite no número de solicitudes por conexión "keepalive_requests" (despois de cada 1000 solicitudes a conexión restablecerase) e as restricións "limit_req". Para responder antes ás inundacións de solicitudes a través dun gran número de fíos, engadiuse unha limitación adicional que non permite a creación de máis de 256 (2 * max_concurrent_streams) novos fíos por ciclo de procesamento de eventos de forma predeterminada. O novo límite permite comezar a bloquear solicitudes antes de que se alcance o límite xeral do número de fíos simultáneos, por exemplo cando se procesan de forma asíncrona ou se eliminan.
  • Engadiuse compatibilidade co módulo de transmisión. servidores virtuais, cuxa configuración se define no bloque “server { … }” mediante a directiva server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Engadiuse un novo módulo, ngx_stream_pass_module, deseñado para reenviar as conexións aceptadas directamente a calquera socket de escoita asociado con módulos como http, stream e mail. stream { server { listen 12345 SSL; ssl_certificate dominio.crt; ssl_certificate_key dominio.key; paso 127.0.0.1:8000; } }
  • A directiva listen do módulo de fluxo implementa soporte para os parámetros "deferred" (habilita a aceptación diferida), "accept_filter" (filtro de conexión entrante aplicado antes de chamar á función de aceptación) e "setfib" (definición da táboa de enrutamento).
  • Para algunhas arquitecturas, implementouse soporte para determinar o tamaño do bloque (liña de caché) usado para transferir datos entre a caché da CPU e a memoria.
  • Xestión mellorada dos búfers utilizados cando se detectan automaticamente conexións HTTP/2.
  • Mellorouse o rendemento do lanzamento de configuracións cunha gran cantidade de directivas de "localización".
  • Eliminouse a compatibilidade coa tecnoloxía push do servidor en HTTP/2.
  • A directiva "ssl", anteriormente obsoleta, foi descontinuada.

A versión estable do proxecto FreeNginx 1.26.0, que desenvolve un fork de Nginx, publicouse hai dúas semanas. O fork está a ser desenvolvido por Maxim Dunin, un dos principais desenvolvedores de Nginx. FreeNginx sitúase como un proxecto sen ánimo de lucro que proporciona o desenvolvemento da base de código Nginx sen interferencias corporativas.

Fonte: opennet.ru

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster