ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π²ΡΠΏΡΡΠΊ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ 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