Π Π΅Π»ΠΈΠ· nginx 1.22.0

ПослС 13 мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСдставлСна новая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ HTTP-сСрвСра ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ прокси-сСрвСра nginx 1.22.0, которая Π²ΠΎΠ±Ρ€Π°Π»Π° Π² сСбя измСнСния, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Π² основной Π²Π΅Ρ‚ΠΊΠ΅ 1.21.x. Π’ дальнСйшСм всС измСнСния Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ 1.22 Π±ΡƒΠ΄ΡƒΡ‚ связаны с устранСниСм ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ошибок ΠΈ уязвимостСй. Π’ скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ сформирована основная Π²Π΅Ρ‚ΠΊΠ° nginx 1.23, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со сторонними модулями, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· Π² Ρ‚Ρ€ΠΈ мСсяца Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ выпуски коммСрчСского ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Nginx Plus.

Π’ соотвСтствии с Π°ΠΏΡ€Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Netcraft nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 20.08% всСх Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 20.15%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 19.56%), Ρ‡Ρ‚ΠΎ соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ мСсту ΠΏΠΎ популярности Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (доля Apache соотвСтствуСт 22.58% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 25.38%), Cloudflare — 10.42% (8.51%), Google — 8.89% (10.09%). ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ рассмотрСнии всСх сайтов nginx сохраняСт лидСрство ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 31.13% Ρ€Ρ‹Π½ΠΊΠ° (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 35.34%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ — 36.91%), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ доля Apache соотвСтствуСт 23.08% (25.98%), OpenResty (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π±Π°Π·Π΅ nginx ΠΈ LuaJIT) — 8.01% (6.55%), Cloudflare — 5.49%, Microsoft IIS — 4% (5.96%).

Π‘Ρ€Π΅Π΄ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых сайтов Π² ΠΌΠΈΡ€Π΅ доля nginx составляСт 21.79% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 23.06%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 25.54%). Π’ настоящСС врСмя ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ nginx Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 361 ΠΌΠ»Π½ сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 419 ΠΌΠ»Π½). По Π΄Π°Π½Π½Ρ‹ΠΌ W3Techs nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 33.5% сайтов ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых, Π² ΠΌΠ°Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ составлял 33.8%, ΠΏΠΎΠ·Π°ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ — 31.9%. Доля Apache Π·Π° Π³ΠΎΠ΄ снизилась с 33.8% Π΄ΠΎ 31.5%, Π° доля Microsoft IIS с 7% Π΄ΠΎ 6%. Доля LiteSpeed выросла с 8.5% Π΄ΠΎ 12.1%, Π° Node.js с 1.2% Π΄ΠΎ 1.9%. Π’ России nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 79.8% самых посСщаСмых сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ — 79.1%).

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² процСссС формирования основной Π²Π΅Ρ‚ΠΊΠΈ 1.21.x:

  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ… «proxy_ssl_certificate», «proxy_ssl_certificate_key» «grpc_ssl_certificate», «grpc_ssl_certificate_key», «uwsgi_ssl_certificate» ΠΈ «uwsgi_ssl_certificate_key» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
  • Π’ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ прокси-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° «pipelining» для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов POP3 ΠΈΠ»ΠΈ IMAP Π² ΠΎΠ΄Π½ΠΎΠΌ соСдинСнии, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° «max_errors», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ максимальноС число ошибок ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, послС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соСдинСниС Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² «Auth-SSL-Protocol» ΠΈ «Auth-SSL-Cipher» сСрвСру Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ прокси.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ stream Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TLS-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ALPN. Для опрСдСлСния списка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ALPN (h2, http/1.1) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ssl_alpn, Π° для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ согласованном с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ALPN пСрСмСнная $ssl_alpn_protocol.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ stream Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «fastopen», Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ «TCP Fast Open» для ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… сокСтов.
  • НалаТСно экранированиС символов «»», «», «\», «^», «`», «{«, «|» ΠΈ «}» ΠΏΡ€ΠΈ проксировании с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ URI.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ stream Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° proxy_half_close, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ проксируСмого соСдинСния TCP Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· сторон («TCP half-close»).
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ngx_http_mp4_module Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° mp4_start_key_frame для вСщания Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠ°, начиная с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная $ssl_curve, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Ρ‚ΠΈΠΏ эллиптичСской ΠΊΡ€ΠΈΠ²ΠΎΠΉ, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ для согласовании ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² сСансС TLS.
  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ «sendfile_max_chunk» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° 2 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°;
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ OpenSSL 3.0. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π·ΠΎΠ²Π° SSL_sendfile() ΠΏΡ€ΠΈ использовании OpenSSL 3.0.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сборка с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ PCRE2, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ сСртификатов сСрвСра Π½Π°Π»Π°ΠΆΠ΅Π½ΠΎ использованиС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ бСзопасности, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… начиная с OpenSSL 1.1.0 ΠΈ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «@SECLEVEL=N» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ ssl_ciphers.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° экспортного Π½Π°Π±ΠΎΡ€Π° ΡˆΠΈΡ„Ρ€ΠΎΠ².
  • Π’ API Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅Π»Π° запроса Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° буфСризация ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ FreeBSD ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° систСмного Π²Ρ‹Π·ΠΎΠ²Π° sendfile, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ прямой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ дСскриптором ΠΈ сокСтом. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ задСйствован Ρ€Π΅ΠΆΠΈΠΌ sendfile(SF_NODISKIO) ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° sendfile(SF_NOCACHE).
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° установки HTTP/2-соСдинСний с использованиСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ NPN (Next Protocol Negotiation) вмСсто ALPN.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° запросов HTTP/1.0, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ «Transfer-Encoding» (появился Π² вСрсии ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/1.1).
  • УсилСна Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊ класса «HTTP Request Smuggling» Π½Π° систСмы фронтэнд-бэкСнд, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²ΠΊΠ»ΠΈΠ½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² содСрТимоС запросов Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ фронтэндом ΠΈ бэкСндом. Nginx Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° CONNECT; ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² «Content-Length» ΠΈ «Transfer-Encoding»; ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов Π² строкС запроса, ΠΈΠΌΠ΅Π½ΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈΠ»ΠΈ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° «Host».

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