nginx 1.20.0 издание

По една година развој, воведена е нова стабилна гранка на HTTP-серверот со високи перформанси и прокси-серверот со повеќе протоколи nginx 1.20.0, кој ги вклучува промените акумулирани во главната гранка 1.19.x. Во иднина, сите промени во стабилната гранка 1.20 ќе бидат поврзани со отстранување на сериозни грешки и пропусти. Наскоро ќе се формира главната гранка на nginx 1.21, во која ќе продолжи развојот на нови функции. За обичните корисници кои немаат задача да обезбедат компатибилност со модули од трети страни, се препорачува да се користи главната гранка, врз основа на која се формираат изданија на комерцијалниот производ Nginx Plus на секои три месеци.

Според мартовскиот извештај на Netcraft, nginx се користи на 20.15% од сите активни сајтови (пред една година 19.56%, пред две години 20.73%), што одговара на второто место по популарност во оваа категорија (уделот на Apache одговара на 25.38% (пред една година 27.64%), Google - 10.09%, Cloudflare - 8.51%. Во исто време, кога се разгледуваат сите страници, nginx го задржува своето лидерство и зазема 35.34% од пазарот (пред една година 36.91%, пред две години - 27.52%), додека уделот на Apache одговара на 25.98%, OpenResty ( платформа базирана на nginx и LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Меѓу милионите најпосетувани сајтови во светот, уделот на nginx е 25.55% (пред една година 25.54%, пред две години 26.22%). Во моментов, околу 419 милиони веб-страници работат со Nginx (459 милиони пред една година). Според W3Techs, nginx се користи на 33.7% од сајтовите од милион најпосетувани, во април минатата година оваа бројка беше 31.9%, претходната година - 41.8% (падот се објаснува со преминот кон посебно сметководство на Cloudflare http сервер). Уделот на Apache падна во текот на годината од 39.5% на 34%, а уделот на Microsoft IIS од 8.3% на 7%. Уделот на LiteSpeed ​​порасна од 6.3% на 8.4%, а Node.js од 0.8% на 1.2%. Во Русија, nginx се користи на 79.1% од најпосетуваните страници (пред една година - 78.9%).

Најзабележителни подобрувања додадени за време на развојот на 1.19.x возводно гранка:

  • Додадена е можност за проверка на сертификатите на клиентите користејќи надворешни услуги базирани на протоколот OCSP (Online Certificate Status Protocol). За да се овозможи проверката, се предлага директивата ssl_ocsp, да се конфигурира големината на кешот - ssl_ocsp_cache, да се редефинира URL-то на управувачот OCSP наведен во сертификатот - ssl_ocsp_responder.
  • Вклучен е модулот ngx_stream_set_module, кој ви овозможува да доделите вредност на променливата сервер { listen 12345; поставете $true 1; }
  • Додадена е директива proxy_cookie_flags за одредување знаменца за колачиња во прокси-врски. На пример, за да го додадете ознаката „httponly“ на „Cookie“ „one“ и знаменцата „nosecure“ и „samesite=strict“ за сите други колачиња, можете да ја користите следнава конструкција: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Слична userid_flags директива за додавање знаменца на колачиња е имплементирана и за модулот ngx_http_userid.

  • Додадени се директивите „ssl_conf_command“, „proxy_ssl_conf_command“, „grpc_ssl_conf_command“ и „uwsgi_ssl_conf_command“, со кои можете да поставите произволни параметри за конфигурирање на OpenSSL. На пример, за да се даде приоритет на шифрите ChaCha и напредната конфигурација на шифрите TLSv1.3, можете да наведете ssl_conf_command Опции PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Додадена е директива „ssl_reject_handshake“, која наложува да се отфрлат сите обиди за преговарање за SSL врски (на пример, може да се користи за одбивање на сите повици со непознати имиња на домаќини во полето SNI). сервер { слушај 443 ssl; ssl_reject_handshake on; } сервер { слушај 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Директивата proxy_smtp_auth е додадена на проксито за пошта, што ви овозможува да го потврдите автентичноста на корисникот на задниот дел користејќи ја командата AUTH и механизмот PLAIN SASL.
  • Додадена е директивата „keepalive_time“, која го ограничува вкупниот животен век на секоја конекција keep-alive, по што врската ќе се затвори (да не се меша со keepalive_timeout, што го дефинира времето на неактивност по кое се затвора врската keep-alive).
  • Додадена е променлива $connection_time, преку која може да добиете информации за времетраењето на врската во секунди со прецизност од милисекунди.
  • Додаден е параметар „min_free“ во директивите „proxy_cache_path“, „fastcgi_cache_path“, „scgi_cache_path“ и „uwsgi_cache_path“, кој ја регулира големината на кешот врз основа на одредување на минималната големина на слободен простор на дискот.
  • Директивите „lingering_close“, „lingering_time“ и „lingering_timeout“ се приспособени за работа со HTTP/2.
  • Кодот за обработка на врската во HTTP/2 е близок до имплементацијата HTTP/1.x. Поддршката за индивидуалните поставки „http2_recv_timeout“, „http2_idle_timeout“ и „http2_max_requests“ е прекината во корист на општите директиви „keepalive_timeout“ и „keepalive_requests“. Поставките „http2_max_field_size“ и „http2_max_header_size“ се отстранети и наместо тоа треба да се користат „large_client_header_buffers“.
  • Додадена е нова опција за командна линија „-e“, која ви овозможува да наведете алтернативна датотека за пишување на дневникот за грешки, која ќе се користи наместо дневникот наведен во поставките. Наместо името на датотеката, можете да ја наведете специјалната вредност stderr.

Извор: opennet.ru

Додадете коментар