Выпуск nginx 1.26.0 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3

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

Π’ соотвСтствии с мартовским ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Netcraft ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ nginx Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 243 ΠΌΠ»Π½ сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 289 ΠΌΠ»Π½). Nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 18.15% всСх Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 18.94%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 20.08%), Ρ‡Ρ‚ΠΎ соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ мСсту ΠΏΠΎ популярности Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (доля Apache соотвСтствуСт 20.09% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 20.52, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 22.58%), Cloudflare — 14.12% (11.32%, 10.42%), Google — 10.41% (9.89%, 8.89%). ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ рассмотрСнии всСх сайтов nginx сохраняСт лидСрство ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 22.31% Ρ€Ρ‹Π½ΠΊΠ° (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 25.94%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ — 31.13%), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ доля Apache соотвСтствуСт 20.17% (20.58, 23.08%), Cloudflare — 11.24% (10.17, 5.49%), OpenResty (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π±Π°Π·Π΅ nginx ΠΈ LuaJIT) — 7.93% (7.94%, 8.01%).

Π‘Ρ€Π΅Π΄ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых сайтов Π² ΠΌΠΈΡ€Π΅ доля nginx составляСт 20.63% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 21.37%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 21.79%), Cloudflare — 22.59% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 21.62%), Apache httpd — 20.09% (21.18%). По Π΄Π°Π½Π½Ρ‹ΠΌ W3Techs nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 34.3% сайтов ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых, Π² апрСля ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ составлял 34.5%, ΠΏΠΎΠ·Π°ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ — 33.1%. Доля Apache Π·Π° Π³ΠΎΠ΄ снизилась с 32.2% Π΄ΠΎ %30.1, Π° доля Microsoft IIS снизилась с 5.6% Π΄ΠΎ 4.8%. Доля Node.js ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ с 2.4% Π΄ΠΎ 3.2%, Π° доля LiteSpeed с 11.8% Π΄ΠΎ 12.9%.

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ngx_http_v3 с ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/3. Для сборки модуля прСдусмотрСна опция «—with-http_v3_module». HTTP/3 опрСдСляСт использованиС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° QUIC (Quick UDP Internet Connections) Π² качСствС транспорта для HTTP/2. QUIC прСдставляСт собой надстройку Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… соСдинСний ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, эквивалСнтныС TLS/SSL. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±Ρ‹Π» создан Π² 2013 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ связкС TCP+TLS для Web, Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с большим Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ установки ΠΈ согласования соСдинСний Π² TCP ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² процСссС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° «http2» для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/2 Π² привязкС ΠΊ сСрвСрам (ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… «server»). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «http2» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ «listen» объявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ.
  • УсилСна Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ аномальной активности ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² HTTP/2, ΠΈ, Π² частности, ΠΎΡ‚ DoS-Π°Ρ‚Π°ΠΊ класса «Rapid Reset», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создаётся большоС число сразу сбрасываСмых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ соСдинСния HTTP/2. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ ΡƒΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² Π»ΠΈΠΌΠΈΡ‚ Π½Π° число запросов Π½Π° соСдинСниС «keepalive_requests» (послС ΠΊΠ°ΠΆΠ΄Ρ‹Ρ… 1000 запросов соСдинСниС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡ) ΠΈ Π² ограничСния «limit_req». Для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅Π³ΠΎ рСагирования Π½Π° Ρ„Π»ΡƒΠ΄ запросами Ρ‡Π΅Ρ€Π΅Π· большоС число ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ 256 (2 * max_concurrent_streams) Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий. НовоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы Π΄ΠΎ достиТСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π»ΠΈΠΌΠΈΡ‚Π° Π½Π° число ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ асинхронно ΠΈΠ»ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ stream Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… сСрвСров, конфигурация ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСтся Π² Π±Π»ΠΎΠΊΠ΅ «server { … }» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ server_name. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ngx_stream_pass_module, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для проброса принятых соСдинСний Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² любой ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΉ сокСт, связанный с Ρ‚Π°ΠΊΠΈΠΌΠΈ модулями, ΠΊΠ°ΠΊ http, stream ΠΈ mail. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ listen модуля stream Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² «deferred» (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ accept), «accept_filter» (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ входящих соСдинСний, примСняСмый ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ accept) ΠΈ «setfib» (Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ).
  • Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠ° (cache line), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ кэшСм CPU ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΈ автоматичСском ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ соСдинСний HTTP/2.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ с большим числом Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² «location».
  • Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Server push Π² HTTP/2.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ «ssl», Ρ€Π°Π½Π΅Π΅ объявлСнной ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ.

Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° FreeNginx 1.26.0, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΊ Nginx, Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΠΎΡ€ΠΊΠ° Π²Π΅Π΄Ρ‘Ρ‚ Максим Π”ΡƒΠ½ΠΈΠ½, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Nginx. FreeNginx позиционируСтся ΠΊΠ°ΠΊ нСкоммСрчСский ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Nginx Π±Π΅Π· ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°.

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