[Nginx] Mar a nì thu a’ chùis air response_status = 0

Artaigil bhon roinn “sidenotes”.

TL: DR:

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

Air aon de na pròiseactan, às deidh dhomh beagan loidsig taobh a-staigh an backend atharrachadh, thòisich mi a’ faicinn freagairt_còd neònach anns na logaichean, is e sin 0. Anns na logaichean tha e a’ coimhead rudeigin mar seo:

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


Cha tug a bhith a’ leughadh na sgrìobhainnean agus a’ googling air a’ chuspair seo dad idir - oir... Thathas ag aithris gu bheil an giùlan seo a 'tachairt nuair a dhùin an neach-dèiligidh an ceangal gun a bhith a' dol seachad air na cinn. Uill, agus diofar rudan coimheach leis a’ mheud bufair airson wsgi_, nach robh anns a’ chùis againn a’ freagairt air an fhacal “ann an dòigh sam bith”.

San fharsaingeachd, cho-dhùin sinn nach e duilgheadas a th 'ann an duilgheadas, a' gabhail a-steach nach eil e idir riatanach aig na leabhraichean againn.

Dìreach gus an do chuir an duilgheadas a leanas dragh orm: ann an cuid de chùisean, bidh ceanglaichean a ’fosgladh gun duilgheadas tro http, ach gu tur a’ diùltadh a bhith ag obair tro https, a ’toirt a-mach an rud mìorbhaileach: Ceangal #0 gu aoigheachd eisimpleir.com air fhàgail slàn
curl: (52) Freagairt falamh bhon fhrithealaiche

Anns na logaichean, bha e comasach dhuinn sùil a chumail air an rud seo a-mhàin le IP - cha robh iarrtas no dàta sam bith eile ann, mar a chithear bhon eisimpleir gu h-àrd. Is e dìreach an inbhe ainmeil 0, ach tha fios agam nach do chuir mi bacadh air an iarrtas! Thòisich mi a’ faighinn a-mach dè a dh’ fhaodadh a dhol ceàrr. Agus thionndaidh a h-uile dad gu math sìmplidh:

èist ri 443 ssl http2 cùl-taic=8192;

Uill, ma chleachdas tu http2 airson ceanglaichean ssl, chan eil e gu leòr dìreach na bufairean iarrtas a rèiteachadh, feumaidh iad cuideachd a bhith air an rèiteachadh ann an ngx_http_v2_module, is e sin:

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

A’ cuingealachadh meud as motha bann-cinn iarrtais air a dhlùthadh a’ cleachdadh HPACK. Tha an cuingeachadh co-ionann ris an dà chuid an t-ainm agus an luach. Ma thèid còdachadh Huffman a chleachdadh, is dòcha gum bi fìor mheud an ainm gun phacaid agus na sreathan luach nas motha. Tha a’ chrìoch bunaiteach freagarrach airson a’ mhòr-chuid de cheistean.

San fharsaingeachd, seo e. Agus carson a h-uile? Leis gu robh fad a 'cheangail fada - nas fhaide na an aon 4k.

Le bhith ga shuidheachadh gu, mar eisimpleir, 8kb (no cho mòr ‘s a tha dualtach a bhith gu leòr), bidh sinn a’ fuasgladh na duilgheadas.
Rudan mar sin.

Source: www.habr.com

Cuir beachd ann