Nginx 1.20.0 хувилбарыг гарга

Бүтэн жил хөгжүүлсний дараа үндсэн салбар 1.20.0.x-д хуримтлагдсан өөрчлөлтүүдийг багтаасан өндөр хүчин чадалтай HTTP сервер болон олон протоколын прокси сервер nginx 1.19-ийн шинэ тогтвортой салбарыг нэвтрүүлсэн. Ирээдүйд тогтвортой салбар 1.20-ийн бүх өөрчлөлт нь ноцтой алдаа, эмзэг байдлыг арилгахтай холбоотой байх болно. Удалгүй nginx 1.21-ийн үндсэн салбар байгуулагдах бөгөөд үүнд шинэ боломжуудыг хөгжүүлэх ажил үргэлжлэх болно. Гуравдагч этгээдийн модулиудтай нийцтэй байдлыг хангах үүрэг хүлээдэггүй энгийн хэрэглэгчдийн хувьд үндсэн салбарыг ашиглахыг зөвлөж байна, үүний үндсэн дээр Nginx Plus арилжааны бүтээгдэхүүний хувилбарууд гурван сар тутамд үүсдэг.

Netcraft-ын 20.15-р сарын тайланд дурдсанаар nginx-ийг бүх идэвхтэй сайтуудын 19.56% (жилийн өмнө 20.73%, хоёр жилийн өмнө 25.38%) ашигладаг бөгөөд энэ ангилалд нэр хүндээрээ хоёрдугаарт ордог (Apache-ийн эзлэх хувь 27.64%). (жилийн өмнө 10.09%), Google - 8.51%, Cloudflare - 35.34%. Үүний зэрэгцээ бүх сайтуудыг авч үзэхэд nginx манлайллаа хадгалж, зах зээлийн 36.91% -ийг эзэлж байна (жилийн өмнө 27.52%, хоёр жилийн өмнө - 25.98%, Apache-ийн эзлэх хувь 6.55%, OpenResty (nginx болон LuaJIT дээр суурилсан платформ.) - 5.96%, Microsoft IIS - XNUMX% байна.

Дэлхийн хамгийн их зочилсон сая сая сайтын дотор nginx-ийн эзлэх хувь 25.55% (жилийн өмнө 25.54%, хоёр жилийн өмнө 26.22%) байна. Одоогийн байдлаар 419 сая орчим вэбсайт Nginx-ийг ажиллуулж байна (жилийн өмнө 459 сая). W3Techs-ийн мэдээлснээр nginx-ийг хамгийн их зочилсон сая сайтын 33.7% нь ашигладаг бол өнгөрсөн оны 31.9-р сард энэ үзүүлэлт 41.8%, өмнөх жил 39.5% байсан (бууралтыг Cloudflare-ийн тусдаа бүртгэлд шилжсэнтэй холбон тайлбарлаж байна http). сервер). Жилийн туршид Apache-ийн эзлэх хувь 34% -иас 8.3%, Microsoft IIS-ийн эзлэх хувь 7% -иас 6.3% болж буурчээ. LiteSpeed-ийн эзлэх хувь 8.4%-аас 0.8%, Node.js 1.2%-аас 79.1% болж өссөн байна. Орос улсад nginx-ийг хамгийн их зочилсон сайтуудын 78.9% (жилийн өмнө - XNUMX%) ашигладаг.

1.19.x дээд талын салбарыг хөгжүүлэх явцад нэмсэн хамгийн гайхалтай сайжруулалтууд:

  • OCSP (Онлайн Сертификат Статус Протокол) протокол дээр суурилсан гадаад үйлчилгээг ашиглан үйлчлүүлэгчийн гэрчилгээг шалгах боломжийг нэмсэн. Шалгалтыг идэвхжүүлэхийн тулд кэшийн хэмжээг тохируулахын тулд ssl_ocsp удирдамжийг санал болгож байна - ssl_ocsp_cache, гэрчилгээнд заасан OCSP зохицуулагчийн URL-г дахин тодорхойлох - ssl_ocsp_responder.
  • ngx_stream_set_module модулийг багтаасан бөгөөд энэ нь хувьсагчийн серверт утга оноох боломжийг олгодог { сонсох 12345; $true 1-г тохируулах; }
  • Прокси холболтууд дахь күүкигүүдийн тугуудыг зааж өгөх proxy_cookie_flags удирдамжийг нэмсэн. Жишээлбэл, "нэг" күүки дээр "httponly" тугийг, бусад бүх күүкиний "nosecure" болон "samesite=strict" тугуудыг нэмэхийн тулд та дараах бүтцийг ашиглаж болно: proxy_cookie_flags зөвхөн нэг http; proxy_cookie_flags ~ nosecure samesite=strict;

    Cookies-д туг нэмэхэд зориулсан ижил төстэй 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 Options 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_timeout-тай андуурч болохгүй).
  • $connection_time хувьсагчийг нэмсэн бөгөөд үүгээр дамжуулан холболтын үргэлжлэх хугацааны талаарх мэдээллийг секундын дотор миллисекундын нарийвчлалтайгаар авах боломжтой.
  • "Min_free" параметрийг "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" болон "uwsgi_cache_path" удирдамжид нэмсэн бөгөөд энэ нь дискний сул зайны хамгийн бага хэмжээг тодорхойлоход үндэслэн кэшийн хэмжээг зохицуулдаг.
  • 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" тохиргоог устгасан бөгөөд оронд нь "том_клиент_толгой_буфер"-ийг ашиглах хэрэгтэй.
  • "-e" командын мөрийн шинэ сонголтыг нэмсэн бөгөөд энэ нь тохиргоонд заасан бүртгэлийн оронд ашиглах алдааны бүртгэлийг бичих өөр файлыг зааж өгөх боломжийг олгодог. Файлын нэрний оронд та stderr тусгай утгыг зааж өгч болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх