[Nginx] Kumaha carana ngelehkeun response_status = 0

Hiji artikel tina kategori "sidenotes".

TL: DR:

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

Dina salah sahiji proyék, sanggeus ngarobah sababaraha logika internal tina backend nu, kuring mimiti niténan response_code aneh dina log, nyaéta 0. Dina log kasampak kawas kieu:

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


Maca dokuméntasi sareng googling dina topik ieu henteu ngahasilkeun nanaon - sabab ... Hal ieu nyatakeun yén kabiasaan ieu lumangsung nalika klien nutup sambungan tanpa ngaliwatan headers. Nya, sareng rupa-rupa hal anu aheng kalayan ukuran panyangga pikeun wsgi_, anu dina hal urang henteu cocog sareng kecap "dina cara naon waé".

Sacara umum, urang mutuskeun yén masalahna teu jadi masalah, nyokot kana akun kanyataan yén dina jilid urang teu pisan kritis.

Persis dugi I ieu puzzled ku masalah di handap ieu: dina sababaraha kasus, Tumbu kabuka tanpa masalah via http, tapi sagemblengna nolak dianggo via HTTPS, ngahasilkeun éndah: Connection #0 ka host example.com ditinggalkeun gembleng.
ngagulung: (52) reply kosong ti server

Dina log, urang ngan ukur tiasa ngalacak hal ieu ku IP - henteu aya pamundut atanapi data anu sanés, sapertos tiasa ditingali tina conto di luhur. Ngan status notorious nyaeta 0, tapi kuring nyaho yén kuring teu ngaganggu pamundut teh! Kuring mimiti terang naon anu salah. Sareng sadayana tétéla saderhana pisan:

ngupingkeun 443 ssl http2 backlog=8192;

Nya, upami anjeun nganggo http2 pikeun sambungan ssl, maka henteu cekap ngan ukur ngonpigurasikeun panyangga pamundut, aranjeunna ogé kedah dikonpigurasi dina ngx_http_v2_module, nyaéta:

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

Ngawatesan ukuran maksimum hiji lulugu pamundut dikomprés maké HPACK. Konstrain manglaku sami pikeun nami sareng nilai. Lamun encoding Huffman dipaké, ukuran sabenerna tina ngaran unpacked sarta string nilai bisa jadi leuwih badag. Wates standar cocog pikeun kalolobaan patarosan.

Sacara umum, ieu téh. Sareng naha sadayana? Kusabab panjang link éta panjang - leuwih panjang batan maranéhanana 4k sarua.

Ku netepkeun ka, contona, 8kb (atawa saloba kamungkinan cukup), urang ngajawab masalah.
Kitu deui.

sumber: www.habr.com

Tambahkeun komentar