Usa ka artikulo gikan sa kategorya nga "sidenotes".
TL: DR:
http2_max_field_size 8k; # Π²ΡΠ΅Ρ
ΡΠΏΠ°ΡΠ΅Ρ!
Sa usa sa mga proyekto, human sa pagbag-o sa pipila ka internal nga lohika sa backend, nagsugod ako sa pag-obserbar sa usa ka katingad-an nga response_code sa mga troso, nga mao ang 0. Sa mga troso kini ingon niini:
{
"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": ""
}
Ang pagbasa sa dokumentasyon ug pag-googling sa kini nga hilisgutan walaβy nahimo - tungod kay... Gipahayag nga kini nga pamatasan mahitabo kung gisira sa kliyente ang koneksyon nga wala gipasa ang mga ulohan. Aw, ug lain-laing mga exotic nga mga butang uban sa buffer gidak-on alang sa wsgi_, nga sa atong kaso dili mohaom sa pulong "sa bisan unsa nga paagi".
Sa kinatibuk-an, nakahukom kami nga ang problema dili usa ka problema, nga gikonsiderar ang kamatuoran nga sa among mga volume dili kini kritikal.
Eksakto hangtod nga nalibog ko sa mosunod nga problema: sa pipila ka mga kaso, ang mga link bukas nga walay mga problema pinaagi sa http, apan hingpit nga nagdumili sa pagtrabaho pinaagi sa https, nga naghimo sa talagsaon nga: Ang koneksyon #0 sa pag-host sa example.com wala'y intact
curl: (52) Walay sulod nga tubag gikan sa server
Sa mga troso, nakahimo kami sa pagsubay niini nga butang pinaagi lamang sa IP - wala'y hangyo o bisan unsang ubang datos, ingon sa makita gikan sa panig-ingnan sa ibabaw. Ang bantog ra nga kahimtang mao ang 0, apan nahibal-an nako nga wala nako gibalda ang hangyo! Nagsugod ako sa paghunahuna kung unsa ang mahimong sayup. Ug ang tanan nahimong yano kaayo:
paminaw sa 443 ssl http2 backlog=8192;
Aw, kung mogamit ka og http2 alang sa mga koneksyon sa ssl, nan dili igo nga i-configure ang mga buffer sa hangyo, kinahanglan usab kini nga ma-configure sa ngx_http_v2_module, nga mao:
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: http2_max_field_size ΡΠ°Π·ΠΌΠ΅Ρ;
Π£ΠΌΠΎΠ»ΡΠ°Π½ΠΈΠ΅: http2_max_field_size 4k;
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ: http, server
Gilimitahan ang pinakataas nga gidak-on sa usa ka header sa hangyo nga gi-compress gamit ang HPACK. Ang pagpugong magamit parehas sa ngalan ug sa kantidad. Kung gigamit ang pag-encode sa Huffman, mahimong mas dako ang aktuwal nga gidak-on sa wala giputos nga ngalan ug mga kuwerdas sa kantidad. Ang default nga limitasyon angay alang sa kadaghanan nga mga pangutana.
Sa kinatibuk-an, mao kini. Ug nganong tanan? Tungod kay taas ang gitas-on sa link - mas taas kaysa sa parehas nga 4k.
Pinaagi sa pagbutang niini sa, pananglitan, 8kb (o kutob sa mahimo nga igo), atong masulbad ang problema.
Mao nga kini moadto.
Source: www.habr.com