Versi baru nginx 1.22.0 telah dirilis

Setelah 13 bulan pengembangan cabang stabil baru dirilis Server HTTP berkinerja tinggi dan server proxy multi-protokol nginx 1.22.0, yang menggabungkan perubahan yang terakumulasi di cabang utama 1.21.x.

Di masa depan, semua perubahan di cabang stabil 1.22 akan terkait dengan debugging dan kerentanan yang serius. Cabang utama nginx 1.23 akan segera dibentuk, di mana pengembangan fitur-fitur baru akan terus berlanjut.

Untuk pengguna biasa yang tidak memiliki tugas untuk memastikan kompatibilitas dengan modul pihak ketiga, disarankan untuk menggunakan cabang utama, berdasarkan versi produk komersial Nginx Plus yang dibentuk setiap tiga bulan.

Berita utama di nginx 1.22.0

Dalam versi baru nginx 1.22.0 yang disajikan, Perlindungan yang ditingkatkan terhadap serangan kelas Penyelundupan Permintaan HTTP di sistem front-end-backend yang memungkinkan Anda mengakses konten permintaan pengguna lain yang diproses di utas yang sama antara front-end dan back-end. Nginx sekarang selalu mengembalikan kesalahan saat menggunakan metode CONNECT; dengan secara bersamaan menentukan header "Content-Length" dan "Transfer-Encoding"; ketika ada spasi atau karakter kontrol dalam string kueri, nama header HTTP, atau nilai header "Host".

Kebaruan lain yang menonjol dalam versi baru ini adalah menambahkan dukungan untuk variabel ke arahan "proxy_ssl_certificate", "proxy_ssl_certificate_key", "grpc_ssl_certificate", "grpc_ssl_certificate_key", "uwsgi_ssl_certificate" dan "uwsgi_ssl_certificate_key".

Selain itu, dicatat juga bahwa itu ditambahkan dukungan untuk mode "pipelining" untuk mengirim beberapa permintaan POP3 atau IMAP pada sambungan yang sama ke modul proxy surat, serta perintah "max_errors" baru yang menentukan jumlah maksimum kesalahan protokol yang setelahnya sambungan akan ditutup.

Header "Auth-SSL-Protocol" dan "Auth-SSL-Cipher" diteruskan ke server otentikasi proxy surat, ditambah dukungan untuk ekstensi ALPN TLS ditambahkan ke modul transmisi. Untuk menentukan daftar protokol ALPN yang didukung (h2, http/1.1), arahan ssl_alpn diusulkan, dan untuk mendapatkan informasi tentang protokol ALPN yang disetujui oleh klien, variabel $ssl_alpn_protocol.

Dari perubahan lainnya yang menonjol:

  • Memblokir permintaan HTTP/1.0 yang menyertakan header HTTP "Transfer-Encoding" (diperkenalkan dalam versi protokol HTTP/1.1).
  • Platform FreeBSD telah meningkatkan dukungan untuk panggilan sistem sendfile, yang dirancang untuk mengatur transfer data langsung antara deskriptor file dan soket. Mode sendfile(SF_NODISKIO) diaktifkan secara permanen dan dukungan untuk mode sendfile(SF_NOCACHE) telah ditambahkan.
  • Parameter "fastopen" telah ditambahkan ke modul transmisi, yang mengaktifkan mode "TCP Fast Open" untuk mendengarkan soket.
  • Memperbaiki pelepasan karakter """, "<", ">", "\", "^", "`", "{", "|" dan "}" saat menggunakan proxy dengan perubahan URI.
  • Direktif proxy_half_close telah ditambahkan ke modul aliran, yang dengannya perilaku ketika koneksi TCP proxy ditutup di satu sisi ("TCP half-close") dapat dikonfigurasi.
  • Menambahkan arahan mp4_start_key_frame baru ke modul ngx_http_mp4_module untuk mengalirkan video dari bingkai kunci.
  • Menambahkan variabel $ssl_curve untuk mengembalikan jenis kurva eliptik yang dipilih untuk negosiasi kunci dalam sesi TLS.
  • Direktif sendfile_max_chunk mengubah nilai default menjadi 2 megabyte;
  • Dukungan disediakan dengan perpustakaan OpenSSL 3.0. Menambahkan dukungan untuk memanggil SSL_sendfile() saat menggunakan OpenSSL 3.0.
  • Perakitan dengan pustaka PCRE2 diaktifkan secara default dan menyediakan fungsi untuk memproses ekspresi reguler.
  • Saat memuat sertifikat server, penggunaan tingkat keamanan yang didukung sejak OpenSSL 1.1.0 dan disetel melalui parameter "@SECLEVEL=N" dalam arahan ssl_ciphers telah disesuaikan.
  • Dukungan cipher suite ekspor yang dihapus.
  • Dalam API pemfilteran badan permintaan, buffering data yang diproses diperbolehkan.
  • Menghapus dukungan untuk membuat koneksi HTTP/2 menggunakan ekstensi Next Protocol Negotiation (NPN) alih-alih ALPN.

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya Di tautan berikut.