Выпуск Angie 1.8.0, Ρ„ΠΎΡ€ΠΊΠ° Nginx

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ выпуск Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ HTTP-сСрвСра ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ прокси-сСрвСра Angie 1.8.0, ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ Nginx Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Π±Ρ‹Π²ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡƒΠ²ΠΎΠ»ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ F5 Network. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты Angie доступны ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» сСртификаты совмСстимости с российскими ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами Π Π΅Π΄ ОБ, Astra Linux Special Edition, Роса Π₯Ρ€ΠΎΠΌ Π‘Π΅Ρ€Π²Π΅Ρ€, ΠΠ»ΡŒΡ‚ ΠΈ ЀБВЭК-вСрсии ΠΠ»ΡŒΡ‚.

Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ занимаСтся компания «Π’Π΅Π±-сСрвСр», образованная осСнью 2022 Π³ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°Ρ инвСстиции Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ 1 ΠΌΠ»Π½ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ ΡΠΎΠ²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π’Π΅Π±-сСрвСр: Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ Π‘Π°Ρ€Ρ‚Π΅Π½Π΅Π² (Π»ΠΈΠ΄Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π·Π²ΠΈΠ²Π°Π²ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Nginx Unit), Иван ΠŸΠΎΠ»ΡƒΡΠ½ΠΎΠ² (Π±Ρ‹Π²ΡˆΠΈΠΉ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ фронтэнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Rambler ΠΈ Mail.Ru), ОлСг ΠœΠ°ΠΌΠΎΠ½Ρ‚ΠΎΠ² (Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π΅Ρ…ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ NGINX Inc) ΠΈ Руслан Π•Ρ€ΠΌΠΈΠ»ΠΎΠ² ([email protected]).

ИзмСнСния в Angie 1.8.0:

  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности модуля http_acme, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ получСния ΠΈ обновлСния сСртификатов ΠΎΡ‚ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° Let’s Encrypt, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ACME (Automatic Certificate Management Environment):
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ DNS-01, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для получСния сСртификатов с масками, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, *.example.com).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° «acme_hook», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ процСсса подтвСрТдСния владСния Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними сСрвисами ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ DNS.
    • Для упрощСния диагностики Π² Π»ΠΎΠ³ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация, такая ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° обновлСния сСртификата, ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, свСдСния ΠΎ нСактивности ΠΈ провСряСмый Π΄ΠΎΠΌΠ΅Π½.
    • Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ «acme_client» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «account_key» для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π° доступа ΠΊ сСрвСру ACME, вмСсто автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ «status_zone», примСняСмой Π² модулях stream ΠΈ http. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для динамичСского ΡƒΡ‡Ρ‘Ρ‚Π° статистики Π² привязкС ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостам, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ «location» ΠΈΠ»ΠΈ «server». server { listen 80; server_name *.example.com; status_zone $host zone=host_zone:10; location / { proxy_pass http://example.com; } }
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ сТатия gzip обСспСчСна ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ zlib-ng 2.2 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями.
  • Из ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° freenginx пСрСнСсСна рСализация Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ max_headers, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ максимальноС число HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² запросС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ DoS-Π°Ρ‚Π°ΠΊ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ http3_max_table_capacity ΠΈ proxy_http3_max_table_capacity для ограничСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, примСняСмой для сТатия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² HTTP/3.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кросс-компиляции — сборку Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π±Π΅Π· нСобходимости запуска скриптов autotest Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.
  • Из freenginx пСрСнСсСно ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ошибками доставки ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π²ΠΎ врСмя мягкого Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСссов-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (gracefully shutdown) — соСдинСния keep-alive Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС истСчСния Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ lingering_timeout.
  • Для получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ использовании Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ stream ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… $ssl_server_name, $ssl_server_cert_type, $ssl_preread_protocol ΠΈ $ssl_preread_server_name.
  • Из рСпозитория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° nginx пСрСнСсСны измСнСния, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² вСрсии nginx 1.27.3.

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