Lanzamento de nginx 1.17.9 e njs 0.3.9

Formado liberación ascendente nginx 1.17.9, dentro do cal continúa o desenvolvemento de novas capacidades (en paralelo soportado estable rama 1.16 Só se realizan cambios relacionados coa eliminación de erros graves e vulnerabilidades).

O principal cambios:

  • Está prohibido especificar varias liñas de "Host".
    cabeceira de solicitude;

  • Corrixiuse un erro no que nginx ignoraba liñas adicionais
    "Codificación de transferencia" na cabeceira da solicitude;

  • Fixéronse correccións para evitar fugas de sockets cando se usa o protocolo HTTP/2;
  • Corrixiuse un fallo de segmentación no proceso de traballo que se producía ao usar o grapado OCSP;
  • Fixéronse correccións no módulo ngx_http_mp4_module;
  • Resolveuse un problema nos casos nos que ao redirixir erros co código 494 mediante a directiva 'error_page', podíase devolver unha resposta co código 494 en lugar de 400;
  • Solucionáronse as fugas de sockets cando se usan subconsultas no módulo njs e na directiva aio.

Ademais, pódese sinalar liberación njs 0.3.9, un intérprete de JavaScript para o servidor web nginx. O intérprete njs implementa os estándares ECMAScript e permítelle ampliar a capacidade de nginx para procesar solicitudes mediante scripts na configuración. Os scripts pódense usar nun ficheiro de configuración para definir a lóxica avanzada para procesar solicitudes, xerar unha configuración, xerar dinámicamente unha resposta, modificar unha solicitude/resposta ou crear rapidamente stubs para resolver problemas nas aplicacións web.

Na nova versión, o módulo njs engadiu soporte para o modo de solicitude separada en r.subrequest(). Ignoráronse as respostas ás subconsultas separadas. A diferenza das subconsultas habituais, pódese crear unha subconsulta separada dentro dun controlador de variables. Tamén:

  • Engadíronse promesas de API para o módulo "fs";
  • As funcións access(), symlink(), unlink(), engadíronse ao módulo “fs”.
    realpath() e semellante;

  • Introducíronse matrices ordinarias, eficientes en termos de consumo de memoria;
  • Realizáronse melloras en lexer;
  • Fixo-se unha corrección para a asignación de funcións nativas en trazos retroactivos.
    rastros;

  • Fixadas as chamadas de devolución de chamada no módulo "fs";
  • Fixéronse correccións en Object.getOwnPropertySymbols();
  • Corrixiuse o desbordamento do búfer do montón en njs_json_append_string();
  • Fixouse encodeURI() e decodeURI() para cumprir coa especificación;
  • Fixo unha corrección en Number.prototype.toPrecision();
  • Correxido o manexo do argumento espazo en JSON.stringify();
  • Fixo unha corrección para JSON.stringify() con obxectos Number() e String();
  • Proporcionou escape de caracteres Unicode en JSON.stringify() segundo
    con especificación;

  • Fixouse unha corrección para a importación de módulos non nativos;
  • Fixo unha corrección para njs.dump() cunha instancia de Date() no contedor.

Fonte: opennet.ru

Engadir un comentario