Një artikull nga kategoria "shënime në margjinë."
TL:DR:
http2_max_field_size 8k; # do t'ju ndihmojĂ«!NĂ« njĂ« nga projektet, pas ndryshimit tĂ« disa logjikave tĂ« brendshme tĂ« backend-it, fillova tĂ« vĂ« re njĂ« kod tĂ« çuditshĂ«m tĂ« pĂ«rgjigjes nĂ« log-e, konkretisht â 0. NĂ« log-e duket kĂ«shtu:
{
"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": ""
}
Leximi i dokumentacionit dhe kĂ«rkimi nĂ« Google pĂ«r kĂ«tĂ« temĂ« nuk solli asgjĂ« â pasi pohohet se kjo sjellje ndodh kur klienti ka mbyllur lidhjen pa dĂ«rguar tituj. NdĂ«rkohĂ«, gjithashtu ekzistojnĂ« disa eksotizma me madhĂ«sinĂ« e tamponit pĂ«r wsgi_, qĂ« nĂ« rastin tonĂ« nuk ishin tĂ« pĂ«rshtatshme aspak.
Në përgjithësi, vendosëm se problemi nuk është një problem, duke pasur parasysh që në volumet tona, nuk është aspak kritik.
Ajo ndodhi deri në momentin që më shqetësuan me një problem tjetër: në disa raste, lidhjet hapen pa probleme me http, por refuzojnë të funksionojnë me https, duke dhënë atë mrekullinë: Lidhja #0 me hostin example.com mbeti e intact.
curl: (52) Përgjigje e zbrazët nga serveri.
NĂ« log-e, gjeta kĂ«tĂ« gjĂ« vetĂ«m pĂ«rmes IP-sĂ« â asnjĂ« kĂ«rkesĂ«, asnjĂ« informacion tjetĂ«r, siç duket nga shembulli mĂ« lart â jo. VetĂ«m statusi famĂ«keq 0, por unĂ« e di qĂ« kĂ«rkesa nuk e kam ndĂ«rprerĂ«! Fillova tĂ« gĂ«rmoj çfarĂ« mund tĂ« shkojĂ« keq. Dhe gjithçka doli shumĂ« e thjeshtĂ«:
listen 443 ssl http2 backlog=8192;
Pra, nëse përdorim http2 për lidhjet ssl, nuk mjafton thjesht të konfigurojmë tamponët e kërkesës, duhet t'i konfigurojmë edhe në ngx_http_v2_module, pikërisht:
Sintaksa: http2_max_field_size madhësia;
Parazgjedhja: http2_max_field_size 4k;
Konteksti: http, server
Kufizon madhësinë maksimale të titujve të kërkesës, të kompresuar me HPACK. Kufizimi zbatohet njëlloj si për emrin ashtu edhe për vlerën. Nëse përdoret kodimi Huffman, atëherë madhësia reale e vargjeve të zbërthyer të emrit dhe vlerës mund të jetë më e madhe. Kufizimi i parazgjedhjes është i përshtatshëm për shumicën e kërkesave.
NĂ« pĂ«rgjithĂ«si, kjo Ă«shtĂ« ajo. Dhe pse? Sepse gjatĂ«sia e lidhjes ishte e madhe â mĂ« shumĂ« se 4k.
Duke e vendosur atĂ«, pĂ«r shembull, nĂ« 8kb (ose aq sa sigurisht mjafton) â zgjidhim problemin.
Këto janë çështjet.
Burimi: habr.com
