[Nginx] Ki jan yo defèt response_status = 0

Yon atik ki soti nan kategori "sidenotes".

TL: DR:

http2_max_field_size 8k; # всех спасет!

Sou youn nan pwojè yo, apre yo fin chanje kèk lojik entèn nan backend la, mwen te kòmanse obsève yon repons_code etranj nan mòso bwa yo, sètadi 0. Nan mòso bwa yo li sanble yon bagay tankou sa a:

{
  "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": ""
}


Lekti dokiman an ak googling sou sijè sa a pa bay absoliman anyen - paske... Yo deklare ke konpòtman sa a rive lè kliyan an fèmen koneksyon an san yo pa pase tèt yo. Oke, ak divès kalite bagay ekzotik ak gwosè a tanpon pou wsgi_, ki nan ka nou an pa t 'anfòm mo a "nan okenn fason".

An jeneral, nou deside ke pwoblèm nan se pa yon pwoblèm, pran an kont lefèt ke nan komèsan nou an li pa nan tout kritik.

Egzakteman jiskaske mwen te sezi pa pwoblèm sa a: nan kèk ka, lyen louvri san pwoblèm atravè http, men konplètman refize travay via https, pwodwi bèl bagay la: Koneksyon #0 a host example.com kite entak.
curl: (52) Repons vid ki soti nan sèvè

Nan mòso bwa yo, nou te kapab swiv bagay sa a sèlman pa IP - pa te gen okenn demann oswa nenpòt lòt done, jan yo ka wè nan egzanp ki anwo a. Sèlman estati notwa a se 0, men mwen konnen ke mwen pa t entèwonp demann lan! Mwen te kòmanse kalkile kisa ki ka ale mal. Ak tout bagay te tounen trè senp:

koute 443 ssl http2 anreta=8192;

Oke, si ou itilize http2 pou koneksyon ssl, Lè sa a, li pa ase jis konfigirasyon tanpon demann yo, yo dwe tou konfigirasyon nan ngx_http_v2_module, sètadi:

Синтаксис:	http2_max_field_size размер;
Умолчание:	http2_max_field_size 4k;
Контекст:	http, server

Limite gwosè maksimòm yon header demann konprese lè l sèvi avèk HPACK. Kontrent la aplike egalman ak non an ak valè a. Si yo itilize kodaj Huffman, gwosè aktyèl non ki pa pake a ak kòd valè yo ka pi gwo. Limit default la apwopriye pou pifò demann.

An jeneral, sa a se li. E poukisa tout? Paske longè lyen an te long - pi long pase menm 4k sa yo.

Lè nou mete li nan, pou egzanp, 8kb (oswa otan ke gen anpil chans yo dwe ase), nou rezoud pwoblèm nan.
Se konsa, li ale.

Sous: www.habr.com

Add nouvo kòmantè