Жилийн турш хөгжүүлсний дараа өндөр хүчин чадалтай HTTP сервер болон олон протокол прокси серверийн шинэ тогтвортой салбар болох nginx 1.20.0 гарлаа. Энэ нь үндсэн 1.19.x салбарт хуримтлагдсан өөрчлөлтүүдийг агуулдаг. Цаашид тогтвортой 1.20 салбар дахь бүх өөрчлөлт нь ноцтой алдаа, эмзэг байдлыг засахад чиглэгдэх болно. Удахгүй nginx 1.21-ийн үндсэн салбар гарах бөгөөд шинэ боломжуудыг үргэлжлүүлэн хөгжүүлэх болно. Гуравдагч талын модулиудтай нийцтэй байдлыг хангах шаардлагагүй энгийн хэрэглэгчдийн хувьд бид гурван сар тутамд арилжааны Nginx Plus хувилбаруудын үндэс болох үндсэн салбарыг ашиглахыг зөвлөж байна.
Netcraft-ын 3-р сарын тайланд дурдсанаар nginx-ийг бүх идэвхтэй вэбсайтуудын 20.15% (жилийн өмнө 19.56%, хоёр жилийн өмнө 20.73%) ашигладаг бөгөөд энэ ангилалд нэр хүндээрээ хоёрдугаарт ордог (Apache-ийн эзлэх хувь 25.38% (жилийн өмнө 27.64%)), Google-ийнх 10.99% (жилийн өмнө 27.64%) байна. 8.51% Үүний зэрэгцээ, бүх вэбсайтуудыг авч үзэхэд nginx манлайллаа хадгалж, зах зээлийн 35.34% (жилийн өмнө 36.91%, хоёр жилийн өмнө 27.52%), Apache-ийн эзлэх хувь 25.98%, OpenResty-ийн (nginx-д суурилсан платформ) болон IJ56, мөн. 5.96%.
Дэлхийн хамгийн их хандалттай сая сая вэбсайтуудын дотор nginx-ийн эзлэх хувь 25.55% (жилийн өмнө 25.54%, хоёр жилийн өмнө 26.22%) байна. Одоогийн байдлаар nginx ойролцоогоор 419 сая вэб сайтыг (жилийн өмнө 459 сая) ажиллуулж байна. W3Techs-ийн мэдээлснээр nginx-ийг хамгийн их хандсан сая сая вэбсайтын 33.7% нь ашигладаг; Өнгөрсөн оны 4-р сард энэ үзүүлэлт 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 (Онлайн Сертификат Статус Протокол) дээр суурилсан гадаад үйлчилгээг ашиглан үйлчлүүлэгчийн гэрчилгээг шалгах чадварыг нэмсэн. Баталгаажуулалтыг идэвхжүүлэхэд 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 one httponly; proxy_cookie_flags ~ nosecure samesite=strict;
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 Options PrioritizeChaCha-г зааж өгч болно; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
- Бүх гар барих оролдлогыг няцаахыг зааварчилдаг "ssl_reject_handshake" удирдамжийг нэмсэн. SSL-холболтууд (жишээлбэл, SNI талбарт үл мэдэгдэх хост нэртэй бүх хүсэлтийг татгалзахад ашиглаж болно). server { listen 443 ssl; ssl_reject_handshake on; } server { listen 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
