Π Π΅Π»ΠΈΠ· Π½Π° nginx 1.18.0

Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прСдставСна Π½ΠΎΠ²Π° стабилна вСрсия Π½Π° високопроизводитСлСн HTTP ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅Π½ прокси ΡΡŠΡ€Π²ΡŠΡ€ nginx 1.18.0, която ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ измСнСнията, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ Π² основната вСрсия 1.17.x. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ всички ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² стабилната вСрсия 1.18 Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с отстраняванСто Π½Π° сСриозни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ уязвимости. Π‘ΠΊΠΎΡ€ΠΎ Ρ‰Π΅ бъдС създадСна основна вСрсия nginx 1.19, Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° която Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. Π—Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС нуТдаят ΠΎΡ‚ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ρ‚Ρ€Π΅Ρ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ основната вСрсия, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° която Π½Π° всСки Ρ‚Ρ€ΠΈ мСсСца сС Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Ρ‚ издания Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Nginx Plus.

Π’ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с априлския ΠΎΡ‚Ρ‡Π΅Ρ‚ Π½Π° компанията Netcraft nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 19.56% ΠΎΡ‚ всички Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ сайтовС (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 20.73%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ 21.02%), ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎ място ΠΏΠΎ популярност Π² Ρ‚Π°Π·ΠΈ катСгория (Π΄ΡΠ»ΡŠΡ‚ Π½Π° Apache Π΅ 27.64%, Google β€” 10.03%, Microsoft IIS β€” 4.77%). ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° всички сайтовС, nginx Π·Π°ΠΏΠ°Π·Π²Π° лидСрството ΠΈ Π·Π°Π΅ΠΌΠ° 36.91% ΠΎΡ‚ ΠΏΠ°Π·Π°Ρ€Π° (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 27.52%), Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄Π΅Π»ΡŠΡ‚ Π½Π° Apache Π΅ 24.73%, Microsoft IIS β€” 12.85%, Google β€” 3.42%.

ΠœΠ΅ΠΆΠ΄Ρƒ Π½Π°ΠΉ-посСщаванитС сайтовС Π² свСта Π΄Π΅Π»ΡŠΡ‚ Π½Π° nginx Π΅ 25.54% (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 26.22%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ 23.76%). Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° nginx работят ΠΎΠΊΠΎΠ»ΠΎ 459 ΠΌΠ»Π½. сайта (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 397 ΠΌΠ»Π½.). По Π΄Π°Π½Π½ΠΈΡ‚Π΅ W3Techs nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 31.9% ΠΎΡ‚ сайтовСтС срСд ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½Π°ΠΉ-посСщавани, ΠΏΡ€Π΅Π· Π°ΠΏΡ€ΠΈΠ» ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π» бСшС 41.8%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ β€” 38% (ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ обяснСно с ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° към ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° http-ΡΡŠΡ€Π²ΡŠΡ€Π° Cloudflare). Π”ΡΠ»ΡŠΡ‚ Π½Π° Apache Π·Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° спадна ΠΎΡ‚ 43.6% Π΄ΠΎ 38.9%, Π° Π΄Π΅Π»ΡŠΡ‚ Π½Π° Microsoft IIS ΠΎΡ‚ 8.6% Π΄ΠΎ 8.3%. Π’ Русия nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС срСща Π½Π° 78.9% ΠΎΡ‚ Π½Π°ΠΉ-посСщаванитС сайтовС (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° β€” 81%).

Най-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ подобрСния, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° основната вСрсия 1.17.x:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° limit_req_dry_run, ΠΊΠΎΠΉΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π½ старт, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ограничСния Π·Π° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявкитС (Π±Π΅Π· rate limit), Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС слСди броят Π½Π° заявкитС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ извън Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π»ΠΈΠΌΠΈΡ‚ΠΈ Π² сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° limit_conn_dry_run, ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π°Ρ‰Π° ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_http_limit_conn_module Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π½ ΠΎΠΏΠΈΡ‚, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ броят Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡΡ‚Π° Π½Π΅ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, Π½ΠΎ сС ΠΎΡ‚Ρ‡ΠΈΡ‚Π°;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° β€žauth_delayβ€œ, която позволява добавянС Π½Π° закъснСниС Π·Π° Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ заявки с ΠΊΠΎΠ΄ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ 401 Π·Π° намаляванС Π½Π° интСнзивността Π½Π° ΠΏΠΎΠ΄Π±ΠΎΡ€Π° Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Ρ‰ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ (timing attack) ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСми, Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ с ΠΏΠ°Ρ€ΠΎΠ»Π°, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ подзаявка ΠΈΠ»ΠΈ JWT (JSON Web Token);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Β«limit_rateΒ» ΠΈ Β«limit_rate_afterΒ», ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Β«proxy_upload_rateΒ» ΠΈ Β«proxy_download_rateΒ» Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° stream;
  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° grpc_pass Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°, опрСдСлящ адрСса. Ако Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π΅ посочСн ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ΅, ΠΈΠΌΠ΅Ρ‚ΠΎ сС Ρ‚ΡŠΡ€ΡΠΈ срСд описанитС Π³Ρ€ΡƒΠΏΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ, Π°ΠΊΠΎ Π½Π΅ бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ, сС опрСдСля с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° resolver’a;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ $proxy_protocol_server_addr ΠΈ $proxy_protocol_server_port, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ адрСса ΠΈ ΠΏΠΎΡ€Ρ‚Π° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΎΡ‚ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PROXY;
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_stream_limit_conn_module Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $limit_conn_status, която ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° броя Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅: PASSED, REJECTED ΠΈΠ»ΠΈ REJECTED_DRY_RUN;
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_http_limit_req_module Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $limit_req_status, която ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π°ι€ŸΠ½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅ Π½Π° заявки: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN ΠΈΠ»ΠΈ REJECTED_DRY_RUN;
  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ осигурСна компилация Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_http_postpone_filter_module;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ β€žlocationβ€œ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° $r->internal_redirect(), прСдоставян ΠΎΡ‚ вградСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Perl. Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ сСга изисква ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° URI с Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½ΠΈ символи;
  • ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Π±Π»ΠΎΠΊΠ° със настройки Β«upstreamΒ» Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° Β«hashΒ» Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° балансировка Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ с ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° към ΡΡŠΡ€Π²ΡŠΡ€Π°, сСга, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Π·Π°Π΄Π°Π΄Π΅ ΠΏΡ€Π°Π·Π½Π° стойност Π½Π° ΠΊΠ»ΡŽΡ‡Π°, сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Π° балансировка (round-robin);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ioctl(FIONREAD), Π°ΠΊΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½, Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ Π±ΡŠΡ€Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ° Π·Π° дълго Π²Ρ€Π΅ΠΌΠ΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster