Π‘ΡΠ°ΡΡΡ ΠΈΠ· ΡΠ°Π·ΡΡΠ΄Π° Β«Π·Π°ΠΌΠ΅ΡΠΊΠΈ Π½Π° ΠΏΠΎΠ»ΡΡ Β».
TL:DR:
http2_max_field_size 8k; # Π²ΡΠ΅Ρ
ΡΠΏΠ°ΡΠ΅Ρ!
ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π°, Π½Π°ΡΠ°Π» Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΡΡΠ°Π½Π½ΡΠΉ response_code Π² Π»ΠΎΠ³Π°Ρ , Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β 0. Π Π»ΠΎΠ³Π°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
{
"timestamp": "2020-01-17T08:41:51+00:00",
"remote_addr": "zzz.zzz.zzz.zzz",
"request_time": 0,
"upstream_response_time": "",
"upstream_header_time": "",
"http_accept_language": "-language",
"response_status": 0,
"request": "",
"host": "example.com",
"upstream_addr": "",
"http_referrer": "",
"request_length": 5854,
"bytes_sent": 0,
"http_user_agent": ""
}
Π§ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π³ΡΠ³Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΌΡ Π΄Π°Π»ΠΎ ΡΠΎΠ²Π½ΡΠΌ ΡΡΠ΅ΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ β Ρ.ΠΊ. ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΊΡΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. ΠΡ ΠΈ ΡΠ°Π·Π½Π°Ρ ΡΠΊΠ·ΠΎΡΠΈΠΊΠ° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±ΡΡΡΠ΅ΡΠ° Π΄Π»Ρ wsgi_, ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΠ»ΠΎ ΠΎΡ ΡΠ»ΠΎΠ²Π° Β«Π½ΠΈΠΊΠ°ΠΊΒ».
Π ΡΠ΅Π»ΠΎΠΌ, ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° Π½Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ ΠΎΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ.
Π ΠΎΠ²Π½ΠΎ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ° ΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΠ·Π°Π΄Π°ΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΡΠ»ΠΊΠΈ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ http, Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ https, Π²ΡΠ΄Π°Π²Π°Ρ ΡΡΠ΄Π΅ΡΠ½ΠΎΠ΅: Connection #0 to host example.com left intact
curl: (52) Empty reply from server
Π Π»ΠΎΠ³Π°Ρ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΡΡ ΡΡΡΠΊΡ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ IP β Π½ΠΈ ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°, Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅ β Π½Π΅Ρ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΡΠ»ΠΎΠ²ΡΡΡΠΉ ΡΡΠ°ΡΡΡ 0, Π½ΠΎ Ρ-ΡΠΎ Π·Π½Π°Ρ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Ρ Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π»! ΠΠ°ΡΠ°Π» ΠΊΠΎΠ²ΡΡΡΡΡ, ΡΡΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π½Π΅ ΡΠ°ΠΊ. Π Π²ΡΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ:
listen 443 ssl http2 backlog=8192;
ΠΡ ΡΠ°ΠΊ Π²ΠΎΡ β Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ http2 Π΄Π»Ρ ssl-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΡΡΡ Π±ΡΡΠ΅ΡΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΡΡΡ ΠΈΡ Π½Π°Π΄ΠΎ ΠΈ Π² ngx_http_v2_module, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: http2_max_field_size ΡΠ°Π·ΠΌΠ΅Ρ;
Π£ΠΌΠΎΠ»ΡΠ°Π½ΠΈΠ΅: http2_max_field_size 4k;
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ: http, server
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ°, ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ HPACK. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°Π²Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΠ°ΠΊ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΈ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π₯Π°ΡΡΠΌΠ°Π½Π°, ΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ. Π Π²ΡΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π»ΠΈΠ½Π° ΡΡΡΠ»ΠΊΠΈ Π±ΡΠ»Π° Π±ΠΎΠ»ΡΡΠΎΠΉ β Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ ΡΠ°ΠΌΡΠ΅ 4k.
ΠΡΡΡΠ°Π²ΠΈΠ² Π΅Π³ΠΎ Π², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 8kb (ΠΈΠ»ΠΈ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Ρ
Π²Π°ΡΠΈΡ) β ΡΠ΅ΡΠ°Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Π»Π°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com