rilis nginx 1.20.0

Setelah satu tahun pengembangan, cabang stabil baru dari server HTTP berkinerja tinggi dan server proxy multi-protokol nginx 1.20.0 telah diperkenalkan, yang menggabungkan perubahan yang terakumulasi di cabang utama 1.19.x. Di masa depan, semua perubahan pada cabang stabil 1.20 akan dikaitkan dengan penghapusan kesalahan dan kerentanan serius. Cabang utama nginx 1.21 akan segera terbentuk, 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, yang menjadi dasar rilis produk komersial Nginx Plus dibentuk setiap tiga bulan.

Menurut laporan Netcraft bulan Maret, nginx digunakan di 20.15% dari semua situs aktif (setahun lalu 19.56%, dua tahun lalu 20.73%), yang merupakan peringkat kedua dalam popularitas dalam kategori ini (pangsa Apache setara dengan 25.38%). (setahun lalu 27.64%), Google - 10.09%, Cloudflare - 8.51% Pada saat yang sama, ketika mempertimbangkan semua situs, nginx mempertahankan kepemimpinannya dan menempati 35.34% pasar (setahun lalu 36.91%, dua tahun lalu - 27.52%), sedangkan pangsa Apache setara dengan 25.98%, OpenResty ( platform berdasarkan nginx dan LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Di antara jutaan situs yang paling banyak dikunjungi di dunia, pangsa nginx adalah 25.55% (tahun lalu 25.54%, dua tahun lalu 26.22%). Saat ini, sekitar 419 juta situs web menjalankan Nginx (459 juta di tahun lalu). Menurut W3Techs, nginx digunakan di 33.7% situs dari jutaan situs yang paling banyak dikunjungi, pada bulan April tahun lalu angka ini adalah 31.9%, tahun sebelumnya - 41.8% (penurunan ini dijelaskan oleh transisi ke akuntansi terpisah dari Cloudflare http server). Pangsa Apache turun sepanjang tahun ini dari 39.5% menjadi 34%, dan pangsa Microsoft IIS dari 8.3% menjadi 7%. Pangsa LiteSpeed ​​tumbuh dari 6.3% menjadi 8.4%, dan Node.js dari 0.8% menjadi 1.2%. Di Rusia, nginx digunakan pada 79.1% situs yang paling banyak dikunjungi (setahun lalu - 78.9%).

Peningkatan paling menonjol yang ditambahkan selama pengembangan cabang upstream 1.19.x:

  • Menambahkan kemampuan untuk memverifikasi sertifikat klien menggunakan layanan eksternal berdasarkan protokol OCSP (Online Certificate Status Protocol). Untuk mengaktifkan pemeriksaan, arahan ssl_ocsp diusulkan, untuk mengkonfigurasi ukuran cache - ssl_ocsp_cache, untuk mendefinisikan ulang URL pengendali OCSP yang ditentukan dalam sertifikat - ssl_ocsp_responder.
  • Modul ngx_stream_set_module disertakan, yang memungkinkan Anda menetapkan nilai ke variabel server {listen 12345; atur $benar 1; }
  • Menambahkan direktif proxy_cookie_flags untuk menentukan tanda untuk Cookie di koneksi proksi. Misalnya, untuk menambahkan tanda “httponly” ke Cookie “one”, dan tanda “nosecure” dan “samesite=strict” untuk semua Cookie lainnya, Anda dapat menggunakan konstruksi berikut: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=ketat;

    Direktif userid_flags serupa untuk menambahkan flag ke Cookie juga diterapkan untuk modul ngx_http_userid.

  • Menambahkan arahan “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” dan “uwsgi_ssl_conf_command”, yang dengannya Anda dapat mengatur parameter arbitrer untuk mengonfigurasi OpenSSL. Misalnya, untuk memprioritaskan cipher ChaCha dan konfigurasi lanjutan cipher TLSv1.3, Anda dapat menentukan ssl_conf_command Opsi PrioritaskanChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Menambahkan arahan "ssl_reject_handshake", yang memerintahkan untuk menolak semua upaya untuk menegosiasikan koneksi SSL (misalnya, dapat digunakan untuk menolak semua panggilan dengan nama host yang tidak dikenal di bidang SNI). server {dengarkan 443 ssl; ssl_reject_handshake aktif; } server { dengarkan 443 ssl; nama_server example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Arahan proxy_smtp_auth telah ditambahkan ke proksi email, memungkinkan Anda mengautentikasi pengguna di backend menggunakan perintah AUTH dan mekanisme PLAIN SASL.
  • Menambahkan arahan "keepalive_time", yang membatasi total masa pakai setiap koneksi keep-alive, setelah itu koneksi akan ditutup (jangan bingung dengan keepalive_timeout, yang menentukan waktu tidak aktif setelah koneksi keep-alive ditutup).
  • Menambahkan variabel $connection_time, yang melaluinya Anda bisa mendapatkan informasi tentang durasi koneksi dalam hitungan detik dengan akurasi milidetik.
  • Parameter “min_free” telah ditambahkan ke arahan “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” dan “uwsgi_cache_path”, yang mengatur ukuran cache berdasarkan penentuan ukuran minimum ruang disk kosong.
  • Direktif "lingering_close", "lingering_time" dan "lingering_timeout" telah diadaptasi untuk bekerja dengan HTTP/2.
  • Kode pemrosesan koneksi di HTTP/2 mirip dengan implementasi HTTP/1.x. Dukungan untuk pengaturan individual "http2_recv_timeout", "http2_idle_timeout" dan "http2_max_requests" telah dihentikan demi arahan umum "keepalive_timeout" dan "keepalive_requests". Pengaturan "http2_max_field_size" dan "http2_max_header_size" telah dihapus dan "large_client_header_buffers" harus digunakan sebagai gantinya.
  • Menambahkan opsi baris perintah baru “-e”, yang memungkinkan Anda menentukan file alternatif untuk menulis log kesalahan, yang akan digunakan sebagai pengganti log yang ditentukan dalam pengaturan. Alih-alih nama file, Anda dapat menentukan nilai khusus stderr.

Sumber: opennet.ru

Tambah komentar