Uitgave van nginx 1.19.7, njs 0.5.1 en NGINX Unit 1.22.0

De hoofdtak van nginx 1.19.7 is vrijgegeven, waarbinnen de ontwikkeling van nieuwe functies doorgaat (in de parallel ondersteunde stabiele tak 1.18 worden alleen wijzigingen aangebracht die verband houden met het elimineren van ernstige fouten en kwetsbaarheden).

Grote veranderingen:

  • Wanneer een werkproces geen vrije verbindingen meer heeft, sluit nginx nu niet alleen de keepalive-verbindingen, maar ook de verbindingen die zich in de status 'langdurig gesloten' bevinden.
  • De code voor verbindingsafhandeling in HTTP/2 ligt dichter bij de HTTP/1.x-implementatie. Ondersteuning voor de individuele instellingen "http2_recv_timeout", "http2_idle_timeout" en "http2_max_requests" is stopgezet ten gunste van de algemene richtlijnen "keepalive_timeout" en "keepalive_requests".
  • De instellingen "http2_max_field_size" en "http2_max_header_size" zijn verwijderd en in plaats daarvan moet "large_client_header_buffers" worden gebruikt.

Tegelijkertijd is njs 0.5.1, een JavaScript-interpreter voor web Server nginx. De njs-interpreter implementeert ECMAScript-standaarden en stelt je in staat de mogelijkheden van nginx voor het verwerken van verzoeken uit te breiden met behulp van configuratiescripts. Scripts kunnen in het configuratiebestand worden gebruikt om geavanceerde logica voor het verwerken van verzoeken te definiëren, configuraties te genereren, dynamisch antwoorden te genereren, verzoeken/antwoorden te wijzigen of snel stubs te creëren om problemen in webapplicaties op te lossen.

De nieuwe versie voegt de richtlijn "js_header_filter" toe, waarmee u een JavaScript-functie kunt opgeven voor het filteren en wijzigen van willekeurige responsheaders: js_import foo.js; locatie / { js_header_filter foo.filter; proxy_wachtwoord http://127.0.0.1:8081/; } foo.js: functie filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Getal(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } exporteer standaard {filter};

Ook is de ngx.fetch()-methode toegevoegd, die de Fetch API implementeert, die HTTP-clientfunctionaliteit biedt. De methode ondersteunt de verwerking van de opties body, headers, buffer_size en max_response_body_size. Het geretourneerde Response-object ondersteunt arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type en url-methoden, en het Header-object ondersteunt get(), getAll() en has()-methoden. functie fetch(r) { ngx.fetch('http://nginx.org/') .then(antwoord => antwoord.tekst()) .then(lichaam => r.return(200, lichaam)) .catch(e => r.return(501, e.bericht)); }

Je kunt de publicatie ook markeren. server NGINX Unit 1.22 is een oplossing voor het uitvoeren van webapplicaties geschreven in diverse programmeertalen (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js en Java). NGINX Unit kan meerdere applicaties in verschillende talen tegelijk uitvoeren, en de opstartparameters kunnen dynamisch worden gewijzigd zonder dat configuratiebestanden hoeven te worden aangepast of herstarten nodig is. De code is geschreven in C en valt onder de Apache 2.0-licentie.

В новом выпуске NGINX Unit основное внимание было уделено повышению стабильности, расширению средств для тестирования и исправлению ошибок. В формируемых для Linux пакетах изменены пользователь и группа, под которыми запускается NGINX Unit. Вместо nobody:nobody процессы теперь выполняются под отдельным пользователем unit в группе unit. Обеспечена совместимость с API Stream объектов ServerRequest и ServerResponse из модуля Node.js. В опции «path» для Python-приложений разрешено указание нескольких каталогов.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster