nginx 1.20.0 чыгарылышы

Бир жылдык өнүгүүдөн кийин nginx 1.20.0 мультипротоколдук прокси серверинин жана nginx 1.19 негизги филиалында топтолгон өзгөрүүлөрдү камтыган жогорку натыйжалуу HTTP серверинин жаңы туруктуу бутагы киргизилди. Келечекте, туруктуу бутагы 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 модулу камтылган, ал сизге өзгөрмө серверине маани ыйгарууга мүмкүндүк берет { угуу 12345; $true 1 коюу; }
  • Проксидик байланыштардагы Cookie файлдары үчүн желектерди көрсөтүү үчүн proxy_cookie_flags директивасы кошулду. Мисалы, Cookie "one" файлына "httponly" желекчесин жана бардык башка Cookie файлдары үчүн "nosecure" жана "samesite=strict" желектерин кошуу үчүн, сиз төмөнкү конструкцияны колдонсоңуз болот: proxy_cookie_flags бир httponly; proxy_cookie_flags ~ nosecure samesite=катуу;

    Окшош userid_flags директивасы Cookie файлдарына желектерди кошуу үчүн 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 Options PrioritizeChaCha белгилей аласыз; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Кошулган "ssl_reject_handshake" директивасы, ал SSL байланыштарын сүйлөшүү аракетин четке кагууну буйруйт (мисалы, SNI талаасында белгисиз хост аттары бар бардык чалууларды четке кагуу үчүн колдонсо болот). server { угуу 443 ssl; ssl_reject_handshake күйгүзүү; } server { угуу 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 өзгөрмөсү кошулду, ал аркылуу сиз миллисекунддук тактык менен секунданын ичинде туташуунун узактыгы жөнүндө маалымат ала аласыз.
  • "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" жана "uwsgi_cache_path" директивасына "min_free" параметри кошулду, ал дисктин бош мейкиндигинин минималдуу өлчөмүн аныктоонун негизинде кэштин өлчөмүн жөнгө салат.
  • "Узак_жакын", "узак_убакыт" жана "кеңейтилген_убакыт" директивалары 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 өзгөчө маанисин көрсөтсөңүз болот.

Source: opennet.ru

Комментарий кошуу