ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ NGINX
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HTTP/3 Π² nginx ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ
ΠΠ»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ HTTP/3 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ nginx Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ http_v3_module ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
«listen» Ρ ΡΠ»Π°Π³ΠΎΠΌ «http3″ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ UDP-ΡΠΎΠΊΠ΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
server {
listen 443 ssl; # TCP-ΡΠΎΠΊΠ΅Ρ Π΄Π»Ρ HTTP/1.1
listen 443 http3 reuseport; # UDP-ΡΠΎΠΊΠ΅Ρ Π΄Π»Ρ QUIC+HTTP/3
ssl_protocols TLSv1.3; # Π² QUIC ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ TLS 1.3
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;
add_header Alt-Svc ‘quic=»:443″‘; # ΠΏΡΠΈΠ·Π½Π°ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ QUIC
add_header QUIC-Status $quic; # ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ QUIC
}
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ HTTP/3 ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ HTTP/2. ΠΡΠΎΡΠΎΠΊΠΎΠ»
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅
- ΠΡΡΠΎΠΊΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ TLS (ΠΏΠΎ ΡΡΡΠΈ QUIC ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ TLS 1.3 ΠΏΠΎΠ²Π΅ΡΡ UDP);
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²;
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (0-RTT, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 75% ΡΠ»ΡΡΠ°ΡΡ
Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ) ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ° (RTT, Round Trip Time);
- ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ²;
- ΠΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°Ρ ;
- Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ·-Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
- ΠΡΠ°Π½ΠΈΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π²ΡΡΠ°Π²Π½Π΅Π½Ρ Ρ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² QUIC, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²;
- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ TCP;
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²;
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΡΠΊΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²;
- ΠΠ°ΠΌΠ΅ΡΠ½ΡΠΉ
ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ TCP. ΠΠ»Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ YouTube, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ QUIC ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° 30%.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru