Keluarkan nginx 1.18.0

Selepas setahun pembangunan diwakili oleh cawangan stabil baru pelayan HTTP berprestasi tinggi dan pelayan proksi multiprotokol nginx 1.18.0, yang menyerap perubahan terkumpul dalam cawangan utama 1.17.x. Pada masa hadapan, semua perubahan dalam cawangan stabil 1.18 akan berkaitan dengan penghapusan ralat dan kelemahan yang serius. Cawangan utama nginx 1.19 akan dibentuk tidak lama lagi, di mana pembangunan ciri baharu akan diteruskan. Bagi pengguna biasa yang tidak mempunyai tugas untuk memastikan keserasian dengan modul pihak ketiga, disyorkan gunakan cawangan utama, berdasarkan keluaran produk komersial Nginx Plus dibentuk setiap tiga bulan.

Sesuai dengan laporan April Netcraft nginx digunakan pada 19.56% daripada semua tapak aktif (setahun lalu 20.73%, dua tahun lalu 21.02%), yang sepadan dengan tempat kedua dalam populariti dalam kategori ini (bahagian Apache sepadan dengan 27.64%, Google - 10.03%, Microsoft IIS - 4.77%) . Pada masa yang sama, apabila mempertimbangkan semua tapak, nginx mengekalkan kepimpinannya dan menduduki 36.91% pasaran (setahun yang lalu 27.52%), manakala bahagian Apache sepadan dengan 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Antara juta tapak yang paling banyak dilawati di dunia, bahagian nginx ialah 25.54% (setahun lalu 26.22%, dua tahun lalu 23.76%). Pada masa ini, kira-kira 459 juta laman web menjalankan Nginx (397 juta setahun yang lalu). Oleh Menurut W3Techs nginx digunakan pada 31.9% tapak daripada juta yang paling banyak dikunjungi, pada bulan April tahun lalu angka ini adalah 41.8%, tahun sebelumnya - 38% (penurunan dijelaskan oleh peralihan kepada perakaunan berasingan pelayan http Cloudflare). Bahagian Apache jatuh sepanjang tahun daripada 43.6% kepada 38.9%, dan bahagian Microsoft IIS daripada 8.6% kepada 8.3%. Di Rusia nginx digunakan pada 78.9% daripada tapak yang paling banyak dilawati (setahun yang lalu - 81%).

Penambahbaikan paling ketara ditambah semasa pembangunan cawangan huluan 1.17.x:

  • Arahan ditambah had_req_dry_run, yang mengaktifkan mod larian percubaan, di mana tiada sekatan dikenakan pada keamatan pemprosesan permintaan (tanpa had kadar), tetapi terus mengambil kira bilangan permintaan yang melebihi had dalam memori kongsi;
  • Arahan ditambah had_conn_dry_run, yang menukar modul ngx_http_limit_conn_module ke dalam mod ujian, di mana bilangan sambungan tidak terhad, tetapi diambil kira;
  • Ditambah arahan "author_delay", yang membolehkan anda menambah kelewatan pada permintaan yang tidak dibenarkan dengan kod respons 401 untuk mengurangkan keamatan meneka kata laluan dan melindungi daripada serang, memanipulasi pengukuran masa pelaksanaan operasi (serangan masa) apabila mengakses sistem yang aksesnya terhad kata laluan, hasil daripada subkueri atau J.W.T. (Token Web JSON);
  • Menambahkan sokongan untuk pembolehubah dalam arahan "kadar_had" dan "kadar_had_selepas", serta dalam arahan "kadar_muat naik_proksi" dan "kadar_muat turun_proksi" modul strim;
  • Dalam arahan grpc_pass menambah sokongan untuk menggunakan pembolehubah dalam parameter yang mentakrifkan alamat. Jika alamat dinyatakan sebagai nama domain, nama itu dicari antara kumpulan pelayan yang diterangkan, dan, jika tidak dijumpai, kemudian ditentukan menggunakan penyelesai;
  • Pembolehubah baharu ditambah $proxy_protocol_server_addr ΠΈ $proxy_protocol_server_port, yang mengandungi alamat pelayan dan port yang diperoleh daripada pengepala protokol PROXY;
  • Dalam modul ngx_stream_limit_conn_module pembolehubah ditambah $limit_conn_status, yang menyimpan hasil mengehadkan bilangan sambungan: LULUS, DITOLAK atau REJECTED_DRY_RUN;
  • Dalam modul ngx_http_limit_req_module pembolehubah ditambah $limit_req_status, yang menyimpan hasil mengehadkan kadar ketibaan permintaan: LULUS, TERTANGGUH, DITOLAK, TERTANGGUH_DRY_RUN atau REJECTED_DRY_RUN;
  • Secara lalai, modul dipasang ngx_http_postpone_filter_module;
  • Menambah sokongan untuk menogol blok "lokasi" bernama menggunakan kaedah $r->internal_redirect() yang disediakan oleh penterjemah Perl terbina dalam. Kaedah ini kini melibatkan pemprosesan URI dengan aksara yang dilepaskan;
  • Apabila menggunakan arahan "hulu" dalam blok tetapan "hulu".hashΒ» untuk mengatur pengimbangan beban dengan pengikatan pelayan-pelanggan, jika anda menentukan nilai kunci kosong, mod pengimbangan seragam (round-robin) kini diaktifkan;
  • Menambah sokongan untuk memanggil ioctl(FIONREAD) jika tersedia untuk mengelakkan pembacaan daripada sambungan pantas dari semasa ke semasa.

Sumber: opennet.ru

Tambah komen