Keluarkan nginx 1.20.0

Selepas setahun pembangunan, cawangan stabil baharu pelayan HTTP berprestasi tinggi dan pelayan proksi berbilang protokol nginx 1.20.0 telah diperkenalkan, yang menggabungkan perubahan terkumpul dalam cawangan utama 1.19.x. Pada masa hadapan, semua perubahan dalam cawangan stabil 1.20 akan berkaitan dengan penghapusan ralat dan kelemahan yang serius. Tidak lama lagi cawangan utama nginx 1.21 akan dibentuk, di mana pembangunan ciri baharu akan diteruskan. Bagi pengguna biasa yang tidak mempunyai tugas untuk memastikan keserasian dengan modul pihak ketiga, disyorkan untuk menggunakan cawangan utama, berdasarkan keluaran produk komersial Nginx Plus dibentuk setiap tiga bulan.

Menurut laporan Mac dari Netcraft, nginx digunakan pada 20.15% daripada semua tapak aktif (setahun lalu 19.56%, dua tahun lalu 20.73%), yang sepadan dengan tempat kedua dalam populariti dalam kategori ini (bahagian Apache sepadan dengan 25.38% (setahun lalu 27.64%), Google - 10.09%, Cloudflare - 8.51%. Pada masa yang sama, apabila mempertimbangkan semua tapak, nginx mengekalkan kepimpinannya dan menduduki 35.34% daripada pasaran (setahun lalu 36.91%, dua tahun lalu - 27.52%), manakala bahagian Apache sepadan dengan 25.98%, OpenResty ( platform berdasarkan nginx dan LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Antara juta tapak yang paling banyak dilawati di dunia, bahagian nginx ialah 25.55% (setahun lalu 25.54%, dua tahun lalu 26.22%). Pada masa ini, kira-kira 419 juta laman web menjalankan Nginx (459 juta setahun yang lalu). Menurut W3Techs, nginx digunakan pada 33.7% tapak daripada juta yang paling banyak dikunjungi, pada April tahun lalu angka ini adalah 31.9%, tahun sebelumnya - 41.8% (penurunan dijelaskan oleh peralihan kepada perakaunan berasingan Cloudflare http pelayan). Bahagian Apache jatuh sepanjang tahun daripada 39.5% kepada 34%, dan bahagian Microsoft IIS daripada 8.3% kepada 7%. Bahagian LiteSpeed ​​meningkat daripada 6.3% kepada 8.4% dan Node.js daripada 0.8% kepada 1.2%. Di Rusia, nginx digunakan pada 79.1% tapak yang paling banyak dikunjungi (setahun yang lalu - 78.9%).

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

  • Menambah keupayaan untuk mengesahkan sijil pelanggan menggunakan perkhidmatan luaran berdasarkan protokol OCSP (Protokol Status Sijil Dalam Talian). Untuk mendayakan semakan, arahan ssl_ocsp dicadangkan, untuk mengkonfigurasi saiz cache - ssl_ocsp_cache, untuk mentakrifkan semula URL pengendali OCSP yang dinyatakan dalam sijil - ssl_ocsp_responder.
  • Modul ngx_stream_set_module disertakan, yang membolehkan anda memberikan nilai kepada pelayan berubah { listen 12345; tetapkan $true 1; }
  • Arahan proxy_cookie_flags ditambahkan untuk menentukan bendera bagi Kuki dalam sambungan proksi. Contohnya, untuk menambah bendera "httponly" pada Cookie "one", dan bendera "nosecure" dan "samesite=strict" untuk semua Cookies lain, anda boleh menggunakan binaan berikut: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Arahan userid_flags yang serupa untuk menambah bendera pada Kuki juga dilaksanakan 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 boleh menetapkan parameter arbitrari untuk mengkonfigurasi OpenSSL. Contohnya, untuk mengutamakan sifir ChaCha dan konfigurasi lanjutan sifir TLSv1.3, anda boleh menentukan Pilihan ssl_conf_command PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Menambahkan arahan "ssl_reject_handshake", yang mengarahkan untuk menolak semua percubaan untuk merundingkan sambungan SSL (contohnya, boleh digunakan untuk menolak semua panggilan dengan nama hos yang tidak diketahui dalam medan SNI). pelayan { dengar 443 ssl; ssl_reject_handshake on; } pelayan { listen 443 ssl; contoh_nama pelayan.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Arahan proxy_smtp_auth telah ditambahkan pada proksi mel, membolehkan anda mengesahkan pengguna di bahagian belakang menggunakan arahan AUTH dan mekanisme SASL PLAIN.
  • Menambahkan arahan "keepalive_time", yang mengehadkan jumlah hayat setiap sambungan keep-alive, selepas itu sambungan akan ditutup (jangan dikelirukan dengan keepalive_timeout, yang mentakrifkan masa tidak aktif selepas sambungan keep-alive ditutup).
  • Pembolehubah $connection_time ditambah, yang melaluinya anda boleh mendapatkan maklumat tentang tempoh sambungan dalam beberapa saat dengan ketepatan milisaat.
  • Parameter "min_free" telah ditambahkan pada arahan "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" dan "uwsgi_cache_path", yang mengawal saiz cache berdasarkan penentuan saiz minimum ruang cakera kosong.
  • Arahan "lingering_close", "lingering_time" dan "lingering_timeout" telah disesuaikan untuk berfungsi dengan HTTP/2.
  • Kod pemprosesan sambungan dalam HTTP/2 adalah hampir dengan pelaksanaan HTTP/1.x. Sokongan untuk tetapan individu "http2_recv_timeout", "http2_idle_timeout" dan "http2_max_requests" telah dihentikan dan memihak kepada arahan umum "keepalive_timeout" dan "keepalive_requests". Tetapan "http2_max_field_size" dan "http2_max_header_size" telah dialih keluar dan "large_client_header_buffers" harus digunakan sebaliknya.
  • Menambahkan pilihan baris arahan baharu β€œ-e”, yang membolehkan anda menentukan fail alternatif untuk menulis log ralat, yang akan digunakan dan bukannya log yang dinyatakan dalam tetapan. Daripada nama fail, anda boleh menentukan nilai khas stderr.

Sumber: opennet.ru

Tambah komen