ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° nginx 1.20.0

Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бСшС въвСдСн Π½ΠΎΠ² стабилСн ΠΊΠ»ΠΎΠ½ Π½Π° високопроизводитСлния HTTP ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅Π½ прокси ΡΡŠΡ€Π²ΡŠΡ€ nginx 1.20.0, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ Π² основния ΠΊΠ»ΠΎΠ½ 1.19.x. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ всички ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² стабилния ΠΊΠ»ΠΎΠ½ 1.20 Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с отстраняванСто Π½Π° сСриозни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ уязвимости. Π‘ΠΊΠΎΡ€ΠΎ Ρ‰Π΅ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° основният ΠΊΠ»ΠΎΠ½ Π½Π° nginx 1.21, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ нямат Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° осигурят ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни, сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ основния ΠΊΠ»ΠΎΠ½, въз основа Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Ρ‚ вСрсии Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Nginx Plus Π½Π° всСки Ρ‚Ρ€ΠΈ мСсСца.

Π‘ΠΏΠΎΡ€Π΅Π΄ мартСнски Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° Netcraft, nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 20.15% ΠΎΡ‚ всички Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ сайтовС (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 19.56%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ 20.73%), ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ място ΠΏΠΎ популярност Π² Ρ‚Π°Π·ΠΈ катСгория (Π΄Π΅Π»ΡŠΡ‚ Π½Π° Apache ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° 25.38% (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 27.64%), Google - 10.09%, Cloudflare - 8.51%.Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ всички сайтовС, nginx Π·Π°ΠΏΠ°Π·Π²Π° лидСрството си ΠΈ Π·Π°Π΅ΠΌΠ° 35.34% ΠΎΡ‚ ΠΏΠ°Π·Π°Ρ€Π° (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 36.91%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ - 27.52%), Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄Π΅Π»ΡŠΡ‚ Π½Π° Apache ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° 25.98%, OpenResty (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° nginx ΠΈ LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Π‘Ρ€Π΅Π΄ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈΡ‚Π΅ Π½Π°ΠΉ-посСщавани сайтовС Π² свСта Π΄Π΅Π»ΡŠΡ‚ Π½Π° nginx Π΅ 25.55% (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° 25.54%, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ 26.22%). Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΎΠΊΠΎΠ»ΠΎ 419 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° уСбсайта работят с Nginx (459 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°). Π‘ΠΏΠΎΡ€Π΅Π΄ W3Techs, nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 33.7% ΠΎΡ‚ Π½Π°ΠΉ-посСщаванитС ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ сайтовС, ΠΏΡ€Π΅Π· Π°ΠΏΡ€ΠΈΠ» ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Ρ‚Π°Π·ΠΈ Ρ†ΠΈΡ„Ρ€Π° бСшС 31.9%, ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° - 41.8% (ΡΠΏΠ°Π΄ΡŠΡ‚ сС обяснява с ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° към ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Cloudflare http ΡΡŠΡ€Π²ΡŠΡ€). Π”Π΅Π»ΡŠΡ‚ Π½Π° Apache спадна ΠΏΡ€Π΅Π· Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ 39.5% Π½Π° 34%, Π° Π΄Π΅Π»ΡŠΡ‚ Π½Π° Microsoft IIS ΠΎΡ‚ 8.3% Π½Π° 7%. Π”Π΅Π»ΡŠΡ‚ Π½Π° LiteSpeed ​​нараства ΠΎΡ‚ 6.3% Π½Π° 8.4%, Π° Π½Π° Node.js ΠΎΡ‚ 0.8% Π½Π° 1.2%. Π’ Русия nginx сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 79.1% ΠΎΡ‚ Π½Π°ΠΉ-посСщаванитС сайтовС (ΠΏΡ€Π΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° - 78.9%).

Най-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ подобрСния, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠ»ΠΎΠ½Π° Π½Π°Π³ΠΎΡ€Π΅ ΠΏΠΎ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° 1.19.x:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° клиСнтски сСртификати с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° външни услуги, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° OCSP (ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΠΎΠ½Π»Π°ΠΉΠ½ статус Π½Π° сСртификат). Π—Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° ssl_ocsp, Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° кСша - ssl_ocsp_cache, Π·Π° ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° URL адрСса Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° OCSP, посочСн Π² сСртификата - ssl_ocsp_responder.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ ngx_stream_set_module, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° присвоитС стойност Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° ΡΡŠΡ€Π²ΡŠΡ€ { listen 12345; Π·Π°Π΄Π°ΠΉΡ‚Π΅ $true 1; }
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° proxy_cookie_flags Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° бисквитки Π² прокси Π²Ρ€ΡŠΠ·ΠΊΠΈ. НапримСр, Π·Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ„Π»Π°Π³Π° β€žhttponlyβ€œ към бисквитката β€žoneβ€œ ΠΈ Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ β€žnosecureβ€œ ΠΈ β€žsamesite=strictβ€œ Π·Π° всички останали бисквитки, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слСдната конструкция: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=строг;

    Подобна Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° userid_flags Π·Π° добавянС Π½Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅ към бисквиткитС ΡΡŠΡ‰ΠΎ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° Π·Π° ΠΌΠΎΠ΄ΡƒΠ»Π° ngx_http_userid.

  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ β€œssl_conf_command”, β€œproxy_ssl_conf_command”, β€œgrpc_ssl_conf_command” ΠΈ β€œuwsgi_ssl_conf_command”, с ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° OpenSSL. НапримСр, Π·Π° Π΄Π° Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° ChaCha ΡˆΠΈΡ„Ρ€ΠΈ ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° конфигурация Π½Π° TLSv1.3 ΡˆΠΈΡ„Ρ€ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС ssl_conf_command ΠžΠΏΡ†ΠΈΠΈ PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° "ssl_reject_handshake", която инструктира Π΄Π° сС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΡ‚ всички ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° договарянС Π½Π° SSL Π²Ρ€ΡŠΠ·ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° всички повиквания с нСизвСстни ΠΈΠΌΠ΅Π½Π° Π½Π° хостовС Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ SNI). ΡΡŠΡ€Π²ΡŠΡ€ {ΡΠ»ΡƒΡˆΠ°ΠΌ 443 ssl; ssl_reject_handshake Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ; } ΡΡŠΡ€Π²ΡŠΡ€ {ΡΠ»ΡƒΡˆΠ°ΠΌ 443 ssl; ΠΈΠΌΠ΅_Π½Π°_ΡΡŠΡ€Π²ΡŠΡ€ example.com; ssl_сСртификат example.com.crt; ssl_certificate_key example.com.key; }
  • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° proxy_smtp_auth Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към пощСнския прокси, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° удостовСритС потрСбитСля Π² Π·Π°Π΄Π½Π°Ρ‚Π° част, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° AUTH ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° PLAIN SASL.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° "keepalive_time", която ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° общия ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° всяка ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰Π° Π²Ρ€ΡŠΠ·ΠΊΠ°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Ρ‰Π΅ бъдС Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π° (Π΄Π° Π½Π΅ сС Π±ΡŠΡ€ΠΊΠ° с keepalive_timeout, която Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° нСактивност, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰Π°Ρ‚Π° Π²Ρ€ΡŠΠ·ΠΊΠ° сС затваря).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $connection_time, Ρ‡Ρ€Π΅Π· която ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ информация Π·Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π² сСкунди с точност Π΄ΠΎ милисСкунди.
  • Към Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ β€žproxy_cache_pathβ€œ, β€žfastcgi_cache_pathβ€œ, β€žscgi_cache_pathβ€œ ΠΈ β€žuwsgi_cache_pathβ€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ β€žmin_freeβ€œ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° кСша въз основа Π½Π° опрСдСлянС Π½Π° минималния Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° свободното дисково пространство.
  • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ "lingering_close", "lingering_time" ΠΈ "lingering_timeout" са Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с HTTP/2.
  • ΠšΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π² HTTP/2 Π΅ близък Π΄ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° HTTP/1.x. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ настройки "http2_recv_timeout", "http2_idle_timeout" ΠΈ "http2_max_requests" Π΅ прСустановСна Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ "keepalive_timeout" ΠΈ "keepalive_requests". НастройкитС β€žhttp2_max_field_sizeβ€œ ΠΈ β€žhttp2_max_header_sizeβ€œ са ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ ΠΈ вмСсто тях трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° β€žlarge_client_header_buffersβ€œ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° опция Π½Π° командния Ρ€Π΅Π΄ β€ž-eβ€œ, която Π²ΠΈ позволява Π΄Π° посочитС Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π΅Π½ Ρ„Π°ΠΉΠ» Π·Π° запис Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вмСсто ΠΆΡƒΡ€Π½Π°Π»Π°, посочСн Π² настройкитС. ВмСсто ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС спСциалната стойност stderr.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€