Nginx 1.20.0 шығарыңыз

Бір жылдық дамудан кейін 1.20.0.x негізгі тармағында жинақталған өзгерістерді қамтитын өнімділігі жоғары HTTP серверінің және nginx 1.19 көп протоколды прокси серверінің жаңа тұрақты тармағы енгізілді. Болашақта 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, сертификатта көрсетілген OCSP өңдеушісінің URL мекенжайын қайта анықтау үшін - ssl_ocsp_responder.
  • ngx_stream_set_module модулі қосылған, ол айнымалы серверге мән тағайындауға мүмкіндік береді { listen 12345; $true 1 орнату; }
  • Прокси қосылған қосылымдардағы cookie файлдары үшін жалаушаларды көрсету үшін proxy_cookie_flags директивасы қосылды. Мысалы, «бір» Cookie файлына «httponly» жалаушасын және барлық басқа Cookie файлдары үшін «nosecure» және «samesite=strict» жалауларын қосу үшін келесі құрылымды пайдалануға болады: proxy_cookie_flags тек бір http; proxy_cookie_flags ~ nosecure samesite=қатаң;

    Cookie файлдарына жалаушаларды қосуға арналған ұқсас 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 қосылымдарын келісуге барлық әрекеттерден бас тартуға нұсқау беретін "ssl_reject_handshake" директивасы қосылды (мысалы, SNI өрісіндегі белгісіз хост атаулары бар барлық қоңырауларды қабылдамау үшін пайдалануға болады). сервер {443 ssl тыңдау; ssl_reject_handshake қосулы; } сервер {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» директивасы қосылды, ол әрбір тірі қалдыру қосылымының жалпы қызмет ету мерзімін шектейді, содан кейін қосылым жабылады (өмірді сақтау қосылымы жабылғаннан кейін әрекетсіздік уақытын анықтайтын keepalive_timeoutпен шатастырмау керек).
  • Қосылған $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

пікір қалдыру