A fost lansată versiunea 1.11.0 a serverului HTTP de înaltă performanță și a proxy-ului multiprotocol Angie, derivat din Nginx de către un grup de foști dezvoltatori care au părăsit compania F5 Network. Codul sursă pentru Angie este disponibil sub licența BSD. Proiectul a obținut certificate de compatibilitate cu sistemele de operare rusești Red OS, Astra Linux Special Edition, Rosa Chrome Server, Alt și versiunile FSTEC ale Alt.
Dezvoltarea este susținută de compania „Web-server”, înființată în toamna anului 2022, care a primit investiții în valoare de 1 milion de dolari. Printre co-proprietarii companiei Web-server se numără: Valentin Barteniev (liderul echipei care a dezvoltat produsul Nginx Unit), Ivan Poluyanov (fostul șef al dezvoltatorilor front-end de la Rambler și Mail.Ru), Oleg Mamontov (șeful echipei de suport tehnic NGINX Inc) și Ruslan Ermilov (ru@FreeBSD.org).
Modificări în Angie 1.11.0:
- A fost adăugat modulul „http-metric”, care permite colectarea în timp real a oricăror metrice HTTP în diferite etape de procesare a cererii și agregarea acestora folosind diverse metode (contorizări, histograme, medii mobile etc.). Accesul la datele colectate se face în formatele JSON și Prometheus prin API-ul HTTP (\/status\/http\/metric_zones\/), precum și prin variabile și jurnale.
- Funcționalitățile legate de suportul protocolului ACME au fost extinse: a fost adăugat suport pentru verificarea ALPN, a fost îmbunătățită afișarea stării revocării certificatelor în API-ul HTTP \/status\/http\/acme_clients\/ (cu suport pentru Prometheus), a fost simplificată configurarea confirmărilor HTTP și s-a realizat accesul la certificate din blocul stream. Verificarea HTTP în ACME poate acum funcționa fără blocurile server cu directiva listen 80 în configurație (pentru schimbarea portului de ascultare, a fost propusă directiva acme_http_port). S-a asigurat calcularea automată a dimensiunii aproximative a certificatului obținut (pentru certificatele cu un număr mare de domenii, acum se poate evita configurarea parametrului max_cert_size în directiva acme_client). Dimensiunea maximă a răspunsului de la serverul ACME este acum limitată de directiva acme_max_response_size.
- Modulul http_image_filter a fost îmbunătățit cu suport pentru formatele AVIF și HEIC. Directiva image_filter a fost extinsă cu parametrul convert pentru conversia între formatele de imagini.
- A fost implementat suportul pentru extensia TLS ECH (Encrypted ClientHello), care continuă dezvoltarea extensiei ESNI (Encrypted Server Name Indication) și este utilizată pentru criptarea informațiilor despre parametrii sesiunilor TLS, cum ar fi numele de domeniu solicitat. Fișierul cu cheia privată pentru ECH este specificat prin directiva ssl_encrypted_hello_key, iar informațiile despre utilizarea ECH sunt disponibile prin variabila $ssl_encrypted_hello.
- Modulul stream a fost îmbunătățit cu suportul pentru protocolul PROXYv2 atunci când se transmite trafic către proxy-urile. servere.
- A fost adăugată posibilitatea de a număra elementele din liste și obiecte la exportarea metricilor Prometheus (cele care se termină cu slash-ul acum returnează numărul de elemente din colecția API corespunzătoare).
- A fost adăugată variabila $sent_body, care conține corpul răspunsului de subinterogare sau interogare de la modulul client.
- A fost adăugată variabila $upstream_cache_key, care conține cheia de cache utilizată.
- În proxy-ul de poștă,server s-a implementat suport pentru metodele de autentificare XOAUTH2 și OAUTHBEARER.
- S-a implementat suport pentru compilarea cu biblioteca criptografică AWS-LC, dezvoltată de Amazon.
- S-au rezolvat problemele cu compilarea în NetBSD 10.0.
- S-au îmbunătățit proxy-ul și cache-ul corect al cererilor GET și HEAD.
- S-au corectat problemele cu HTTP/3, legate de degradarea funcționării protocolului în timpul operației de reload și de eșecul după actualizarea binară; s-a îmbunătățit rutarea pachetelor QUIC între procese prin revizuirea codului BPF.
- Modificările propuse în versiunea nginx 1.29.3 au fost transferate din depozitul proiectului nginx, cu excepția directivelor add_header_inherit și add_trailer_inherit. Au fost transferite îmbunătățiri separate din FreeNginx.
Sursa: opennet.ro
