Paglabas ng nginx 1.17.9 at njs 0.3.9

Nabuo upstream release nginx 1.17.9, sa loob kung saan nagpapatuloy ang pag-unlad ng mga bagong kakayahan (kaayon na sinusuportahan ang stable sangay 1.16 Ang mga pagbabago lamang na nauugnay sa pag-aalis ng mga seryosong pagkakamali at kahinaan ay ginawa).

Ang pangunahing pagbabago:

  • Ipinagbabawal na tukuyin ang maraming linya ng "Host" sa
    header ng kahilingan;

  • Inayos ang isang bug kung saan hindi pinansin ng nginx ang mga karagdagang linya
    "Transfer-Encoding" sa header ng kahilingan;

  • Ang mga pag-aayos ay ginawa upang maiwasan ang mga pagtagas ng socket kapag ginagamit ang HTTP/2 protocol;
  • Inayos ang isang pagkakamali sa segmentation sa proseso ng manggagawa na nangyayari kapag gumagamit ng OCSP stapling;
  • Ang mga pagwawasto ay ginawa sa ngx_http_mp4_module module;
  • Nalutas ang isang isyu sa mga kaso kung saan kapag nagre-redirect ng mga error gamit ang code 494 gamit ang 'error_page' na direktiba, isang tugon na may code 494 ay maaaring ibalik sa halip na 400;
  • Fixed socket leaks kapag gumagamit ng mga subquery sa njs module at ang aio directive.

Bilang karagdagan, maaari mong tandaan problema njs 0.3.9, isang JavaScript interpreter para sa nginx web server. Ang njs interpreter ay nagpapatupad ng mga pamantayan ng ECMAScript at nagbibigay-daan sa iyong palawakin ang kakayahan ng nginx na iproseso ang mga kahilingan gamit ang mga script sa configuration. Maaaring gamitin ang mga script sa isang configuration file upang tukuyin ang advanced na logic para sa pagpoproseso ng mga kahilingan, pagbuo ng configuration, dynamic na pagbuo ng tugon, pagbabago ng kahilingan/tugon, o mabilisang paggawa ng mga stub upang malutas ang mga problema sa mga web application.

Sa bagong release, ang njs module ay nagdagdag ng suporta para sa detached request mode sa r.subrequest(). Binabalewala ang mga tugon sa mga hiwalay na subquery. Hindi tulad ng mga regular na subquery, ang isang hiwalay na subquery ay maaaring gawin sa loob ng isang variable na handler. Gayundin:

  • Nagdagdag ng Mga Pangako ng API para sa module na "fs";
  • Ang mga function access(), symlink(), unlink(), ay idinagdag sa β€œfs” module.
    realpath() at katulad;

  • Ang mga ordinaryong array, mahusay sa mga tuntunin ng pagkonsumo ng memorya, ay ipinakilala;
  • Ang mga pagpapabuti ay ginawa sa lexer;
  • Ang isang pag-aayos ay ginawa sa pagmamapa ng mga katutubong function sa backtraces.
    bakas;

  • Inayos ang mga callback na tawag sa "fs" module;
  • Ang mga pagwawasto ay ginawa sa Object.getOwnPropertySymbols();
  • Inayos ang heap buffer overflow sa njs_json_append_string();
  • Inayos ang encodeURI() at decodeURI() upang makasunod sa detalye;
  • Gumawa ng pag-aayos sa Number.prototype.toPrecision();
  • Nakapirming pangangasiwa ng space argument sa JSON.stringify();
  • Gumawa ng pag-aayos sa JSON.stringify() gamit ang Number() at String() na mga bagay;
  • Ibinigay ang pagtakas ng mga Unicode na character sa JSON.stringify() ayon sa
    na may pagtutukoy;

  • Ang pag-aayos ay ginawa sa pag-import ng mga hindi katutubong module;
  • Gumawa ng pag-aayos sa njs.dump() na may Date() instance sa container.

Pinagmulan: opennet.ru

Magdagdag ng komento