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