rilis nginx 1.18.0

Setelah satu tahun pembangunan diwakili oleh cabang stabil baru dari server HTTP berkinerja tinggi dan server proxy multiprotokol nginx 1.18.0, yang menyerap perubahan yang terakumulasi dalam cabang utama 1.17.x. Di masa depan, semua perubahan pada cabang stabil 1.18 akan dikaitkan dengan penghapusan kesalahan dan kerentanan serius. Cabang utama nginx 1.19 akan segera dibentuk, di mana pengembangan fitur-fitur baru akan terus berlanjut. Untuk pengguna biasa yang tidak memiliki tugas memastikan kompatibilitas dengan modul pihak ketiga, direkomendasikan gunakan cabang utama, yang menjadi dasar rilis produk komersial Nginx Plus dibentuk setiap tiga bulan.

Menurut laporan bulan April Netcraft nginx digunakan di 19.56% dari semua situs aktif (setahun lalu 20.73%, dua tahun lalu 21.02%), yang merupakan peringkat kedua dalam popularitas dalam kategori ini (pangsa Apache setara dengan 27.64%, Google - 10.03%, Microsoft IIS - 4.77%) . Pada saat yang sama, ketika mempertimbangkan semua situs, nginx mempertahankan kepemimpinannya dan menempati 36.91% pasar (tahun lalu 27.52%), sedangkan pangsa Apache setara dengan 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Di antara jutaan situs yang paling banyak dikunjungi di dunia, pangsa nginx adalah 25.54% (tahun lalu 26.22%, dua tahun lalu 23.76%). Saat ini, sekitar 459 juta situs web menjalankan Nginx (397 juta di tahun lalu). Oleh Menurut W3Techs nginx digunakan di 31.9% situs dari jutaan situs yang paling banyak dikunjungi, pada bulan April tahun lalu angka ini adalah 41.8%, tahun sebelumnya - 38% (penurunan ini dijelaskan oleh transisi ke penghitungan terpisah dari server http Cloudflare). Pangsa Apache turun sepanjang tahun dari 43.6% menjadi 38.9%, dan pangsa Microsoft IIS dari 8.6% menjadi 8.3%. Di Rusia nginx bekas pada 78.9% situs yang paling banyak dikunjungi (setahun lalu - 81%).

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

  • Petunjuk ditambahkan limit_req_dry_run, yang mengaktifkan mode uji coba, di mana tidak ada batasan yang diterapkan pada intensitas pemrosesan permintaan (tanpa batas kecepatan), namun terus memperhitungkan jumlah permintaan yang melebihi batas dalam memori bersama;
  • Petunjuk ditambahkan limit_conn_dry_run, yang mengalihkan modul ngx_http_limit_conn_module ke mode uji coba, di mana jumlah koneksi tidak dibatasi, tetapi diperhitungkan;
  • Menambahkan arahan "auth_delay", yang memungkinkan Anda menambahkan penundaan pada permintaan tidak sah dengan kode respons 401 untuk mengurangi intensitas tebakan kata sandi dan melindungi dari serangan, memanipulasi pengukuran waktu pelaksanaan operasi (timing serangan) ketika mengakses sistem yang aksesnya dibatasi kata sandi, hasil dari subquery ΠΈΠ»ΠΈ JWT (Token Web JSON);
  • Menambahkan dukungan untuk variabel dalam arahan "limit_rate" dan "limit_rate_after", serta arahan "proxy_upload_rate" dan "proxy_download_rate" pada modul streaming;
  • Dalam arahan grpc_pass menambahkan dukungan untuk menggunakan variabel dalam parameter yang mendefinisikan alamat. Jika alamat ditentukan sebagai nama domain, nama tersebut dicari di antara grup server yang dijelaskan, dan, jika tidak ditemukan, maka ditentukan menggunakan pemecah masalah;
  • Variabel baru ditambahkan $proxy_protocol_server_addr ΠΈ $proxy_protocol_server_port, yang berisi alamat server dan port yang diperoleh dari header protokol PROXY;
  • Di dalam modul ngx_stream_limit_conn_module variabel ditambahkan $limit_conn_status, yang menyimpan hasil pembatasan jumlah koneksi: PASSED, REJECTED atau REJECTED_DRY_RUN;
  • Di dalam modul ngx_http_limit_req_module variabel ditambahkan $limit_req_status, yang menyimpan hasil pembatasan laju kedatangan permintaan: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN atau REJECTED_DRY_RUN;
  • Secara default, modul sudah dirakit ngx_http_postpone_filter_module;
  • Menambahkan dukungan untuk mengganti blok bernama "lokasi" menggunakan metode $r->internal_redirect() yang disediakan oleh juru bahasa Perl bawaan. Metode ini sekarang melibatkan pemrosesan URI dengan karakter yang di-escape;
  • Saat menggunakan arahan β€œupstream” di blok pengaturan β€œupstream”.hashΒ» untuk mengatur penyeimbangan beban dengan pengikatan klien-server, jika Anda menentukan nilai kunci kosong, mode penyeimbangan seragam (round-robin) sekarang diaktifkan;
  • Menambahkan dukungan untuk memanggil ioctl(FIONREAD) jika tersedia untuk menghindari membaca dari koneksi cepat seiring waktu.

Sumber: opennet.ru

Tambah komentar