Выпуск nginx 1.30.0 ΠΈ Ρ„ΠΎΡ€ΠΊΠ° FreeNginx 1.30.0

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

Π’ соотвСтствии с Ρ„Π΅Π²Ρ€Π°Π»ΡŒΡΠΊΠΈΠΌ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Netcraft ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ nginx Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 321 ΠΌΠ»Π½ сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 245 ΠΌΠ»Π½, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ β€” 243 ΠΌΠ»Π½, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 289 ΠΌΠ»Π½). Nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 16.08% всСх Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сайтов (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 17.89%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 18.15%, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 18.94%), Ρ‡Ρ‚ΠΎ соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ мСсту ΠΏΠΎ популярности Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (доля Apache соотвСтствуСт 13.27% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 16.03%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 20.09%, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 20.52%), Cloudflare β€” 20.62% (17.81%, 14.12%, 11.32%), Google β€” 10.65% (9.89%, 10.41%, 9.89%).

ΠŸΡ€ΠΈ рассмотрСнии всСх сайтов nginx сохраняСт лидСрство ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 22.65% Ρ€Ρ‹Π½ΠΊΠ° (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 20.48%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ β€” 22.31%, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ β€” 25.94%), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ доля Apache соотвСтствуСт 12.19% (16.03%, 20.17%, 20.58%), Cloudflare β€” 15.27% (12.87%, 11.24%, 10.17%), OpenResty (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π±Π°Π·Π΅ nginx ΠΈ LuaJIT) β€” 8.01% (9.36%, 7.93%, 7.94%).

Π‘Ρ€Π΅Π΄ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых сайтов Π² ΠΌΠΈΡ€Π΅ nginx Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто с Π΄ΠΎΠ»Π΅ΠΉ 19.85% (Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ 20.37%, Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 20.63%, Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ 21.37%). ΠŸΠ΅Ρ€Π²ΠΎΠ΅ мСсто ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Cloudflare β€” 26.84% (22.32%, 22.59%, 21.62%). Доля Apache httpd β€” 15.84% (17.95%, 20.09%, 21.18%).

 Выпуск nginx 1.30.0 ΠΈ Ρ„ΠΎΡ€ΠΊΠ° FreeNginx 1.30.0

По Π΄Π°Π½Π½Ρ‹ΠΌ W3Techs nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° 32.8% сайтов ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° самых посСщаСмых (Π² Π°ΠΏΡ€Π΅Π»Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ составлял 33.8%, ΠΏΠΎΠ·Π°ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ β€” 34.3%). Доля Apache Π·Π° Π³ΠΎΠ΄ снизилась с 26.3% Π΄ΠΎ 23.9%, доля Microsoft IIS снизилась с 4% Π΄ΠΎ 3.4%, Π° доля Caddy с 0.3% Π΄ΠΎ 0.2%. Доля Node.js ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ с 4.4% Π΄ΠΎ 6.0%, Π° доля LiteSpeed с 14.6% Π΄ΠΎ 15.2%.

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TLS-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ECH (Encrypted ClientHello), ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ESNI (Encrypted Server Name Indication) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… TLS-сСансов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ECH ΠΎΡ‚ ESNI Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ECH вмСсто ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ всё TLS-сообщСниС ClientHello, Ρ‡Ρ‚ΠΎ позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ESNI, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»Π΅ PSK (Pre-Shared Key). ИспользованиС ECH Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ Β«ssl_ech_fileΒ» Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ECHConfig Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PEM. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° доступна ΠΏΡ€ΠΈ использовании сборок OpenSSL с ECH.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Multipath TCP (MPTCP), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ нСскольким ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ сСтСвыС интСрфСйсы. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Β«listenΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«multipathΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ привязки сСансов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ сСрвСрам Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. Доступно Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: Β«cookieΒ» β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ сСрвСрС Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Cookie; Β«routeΒ» β€” проксируСмый сСрвСр Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запроса; Β«learnΒ» β€” nginx Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‚ upstream-сСрвСра ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚Ρ‹Π΅ сСрвСром сСансы. Для настройки привязки Π² Π±Π»ΠΎΠΊ Β«upstreamΒ» модуля Β«httpΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Β«stickyΒ», Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Β«serverΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«routeΒ» ΠΈ Β«drainΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Β«early_hintsΒ» ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HTTP-ΠΊΠΎΠ΄Π° 103 Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… ΠΎΡ‚ бэкСндов proxy ΠΈ gRPC. Код 103 позволяСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎ содСрТании Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сразу послС запроса, Π½Π΅ доТидаясь ΠΏΠΎΠΊΠ° сСрвСр Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ всС связанныС с запросом ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π°Ρ‡Π½Ρ‘Ρ‚ ΠΎΡ‚Π΄Π°Ρ‡Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ подсказки ΠΎ связанных с ΠΎΡ‚Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ страницСй элСмСнтах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ссылки Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° страницС css ΠΈ javascript). ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… рСсурсах Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ приступит ΠΊ ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π΅ доТидаясь окончания ΠΎΡ‚Π΄Π°Ρ‡ΠΈ основной страницы, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ add_header_inherit ΠΈ add_trailer_inherit, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° наслСдования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ… add_header ΠΈ add_trailer. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«offΒ» отмСняСт наслСдованиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«mergeΒ» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ уровня ΠΊ значСниям Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Β«ssl_certificate_compressionΒ» для управлСния сТатиСм TLS-сСртификатов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° max_headers, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ максимальноС число HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² запросС. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚Π° возвращаСтся ошибка 400 (Bad Request). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСнСсСна ΠΈΠ· FreeNginx.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ $request_port ΠΈ $is_request_port. ΠŸΠ΅Ρ€Π²Π°Ρ пСрСмСнная содСрТит Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° URI ΠΈΠ»ΠΈ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«HostΒ», Π° вторая содСрТит Β«:Β», Ссли пСрСмСнная $request_port Π½Π΅ пустая.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ $ssl_sigalg ΠΈ $ssl_client_sigalg, содСрТащиС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° формирования Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи для TLS-соСдинСния.
  • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Β«geoΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«volatileΒ», ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ маски Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ Β«includeΒ», ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° Β«geoΒ».
  • Π’ Π±Π»ΠΎΠΊΠ΅ Β«upstreamΒ» Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Β«keepaliveΒ». Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Β«keepaliveΒ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π² Π±Π»ΠΎΠΊΠ΅ Β«upstreamΒ», Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«localΒ». ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, вмСсто совмСстного использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ соСдинСния ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ upstream-сСрвСру, ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΠΎΠΌΡƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… location ΠΈ server, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° поддСрТиваСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ соСдинСниС ΠΊ upstream.
  • ΠŸΡ€ΠΈ использовании Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прокси ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выставлСна вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/1.1 с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ° keep-alive (Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ngx_http_proxy_module Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° keep-alive ΠΈ выставлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«1.1Β» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ Β«proxy_http_versionΒ» ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«ConnectionΒ»).
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ngx_http_proxy Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/2, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTTP/2 ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ бэкСндам.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ криптографичСских ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈΠ· Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenSSL.
  • Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° QUIC Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° 0-RTT, доступная Π½Π° систСмах с OpenSSL 3.5.1 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ выпусками.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ AWS-LC, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Amazon.
  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ сТатиС сСртификатов TLSv1.3.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ OpenSSL 4.0.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° FreeNginx 1.30.0, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΊ Nginx. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΠΎΡ€ΠΊΠ° Π²Π΅Π΄Ρ‘Ρ‚ Максим Π”ΡƒΠ½ΠΈΠ½, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Nginx. FreeNginx позиционируСтся ΠΊΠ°ΠΊ нСкоммСрчСский ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Nginx Π±Π΅Π· ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°. Код FreeNginx ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ FreeNginx 1.30: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TLS-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ECH (Encrypted Client Hello); ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ limit_rate; Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ send_min_rate ΠΈ client_body_min_rate; Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ограничСния числа соСдинСний ΠΈ интСнсивности запросов Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΌ прокси; Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π‘Π” GeoIP2 Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ GeoIP; усилСна Π·Π°Ρ‰ΠΈΡ‚Π° модуля XSLT.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ