Cabang utama nginx 1.25.3 telah dirilis, di mana pengembangan fitur-fitur baru terus berlanjut. Cabang stabil yang dikelola paralel 1.24.x hanya berisi perubahan yang terkait dengan penghapusan bug dan kerentanan serius. Nantinya, berdasarkan cabang utama 1.25.x, cabang stabil 1.26 akan dibentuk. Kode proyek ditulis dalam C dan didistribusikan di bawah lisensi BSD.
Diantara perubahannya:
- Perlindungan terhadap aktivitas klien HTTP/2 yang anomali telah diperkuat, khususnya terhadap serangan DoS "Rapid Reset" yang menciptakan sejumlah besar aliran yang direset secara bersamaan dalam satu koneksi HTTP/2. Dalam konfigurasi default, serangan tersebut dibatasi oleh batas permintaan koneksi "keepalive_requests" (koneksi direset setelah setiap 1000 permintaan) dan batasan "limit_req". Untuk merespons lebih cepat terhadap banjir permintaan di sejumlah besar aliran, batas tambahan telah ditambahkan, yang mencegah pembuatan lebih dari 256 (2 * max_concurrent_streams) aliran baru per siklus pemrosesan peristiwa secara default. Batas baru ini memungkinkan pemblokiran permintaan sebelum batas aliran bersamaan secara keseluruhan tercapai, misalnya, ketika aliran diproses secara asinkron atau direset. Perubahan serupa juga disertakan dalam rilis Angie 1.3.1 (sebuah fork dari Nginx), yang diterbitkan seminggu yang lalu.
- Peningkatan pengelolaan buffer yang digunakan saat mendeteksi koneksi HTTP/2 secara otomatis.
- Performa peluncuran konfigurasi dengan sejumlah besar arahan “lokasi” telah ditingkatkan.
- Memperbaiki kerusakan proses pekerja yang dapat terjadi saat mencoba menggunakan HTTP/2 tanpa SSL.
- Memperbaiki kesalahan pemrosesan header "Status" yang dikembalikan oleh backend dengan teks penjelasan kosong.
- Memperbaiki kebocoran memori selama konfigurasi ulang yang terjadi saat membangun dengan pustaka PCRE2.
- Sejumlah besar perbaikan dan peningkatan terkait dukungan protokol HTTP/3 telah diperkenalkan.
Pada saat yang sama, njs 0.8.2, sebuah interpreter JavaScript untuk server web Nginx. Interpreter njs mengimplementasikan standar ECMAScript dan memungkinkan Anda untuk memperluas kemampuan pemrosesan permintaan Nginx menggunakan skrip konfigurasi. Skrip dapat digunakan dalam file konfigurasi untuk mendefinisikan logika pemrosesan permintaan tingkat lanjut, menghasilkan konfigurasi, menghasilkan respons secara dinamis, memodifikasi permintaan/respons, atau dengan cepat membuat stub untuk menyelesaikan masalah dalam aplikasi web. Versi baru menambahkan objek konsol, yang menyediakan metode error(), info(), log(), time(), timeEnd(), dan warn(). Metode fs.existsSync() telah ditambahkan ke modul fs.
Hal lain yang patut diperhatikan adalah rilis NGINX Unit 1.31.1, solusi server aplikasi untuk menjalankan aplikasi web dalam berbagai bahasa pemrograman (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, dan Java). NGINX Unit dapat menjalankan beberapa aplikasi secara bersamaan dalam berbagai bahasa, dan parameter peluncurannya dapat dimodifikasi secara dinamis tanpa perlu mengedit file konfigurasi atau memulai ulang. Selain perbaikan bug, versi baru modul Wasm memungkinkan pengunduhan data yang lebih besar dari 4 GB, dan memungkinkan pengaturan kode status HTTP dalam respons.
Sumber: opennet.ru
