[Nginx] Yadda ake kayar da martani_status = 0

Labari daga rukunin "sidenotes".

TL: DR:

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

A daya daga cikin ayyukan, bayan canza wasu dabaru na ciki na baya, na fara lura da wani bakon amsa_code a cikin rajistan ayyukan, wato 0. A cikin rajistan ayyukan yana kama da wani abu kamar haka:

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


Karatun takardun da yin taɗi akan wannan batu bai haifar da komai ba - saboda ... An bayyana cewa wannan hali yana faruwa ne lokacin da abokin ciniki ya rufe haɗin ba tare da wuce masu kai ba. To, da abubuwa daban-daban masu ban mamaki tare da girman buffer don wsgi_, wanda a cikin yanayinmu bai dace da kalmar "ta kowace hanya ba".

Gabaɗaya, mun yanke shawarar cewa matsalar ba matsala ba ce, la'akari da cewa a cikin kundin mu ba shi da mahimmanci.

Daidai har sai da matsala mai zuwa ta ruɗe ni: a wasu lokuta, hanyoyin haɗin suna buɗe ba tare da matsala ta hanyar http ba, amma gaba ɗaya sun ƙi yin aiki ta hanyar https, suna samar da ban mamaki: Connection #0 don karɓar bakuncin misali.com hagu cikakke.
curl: (52) Amsa mara komai daga uwar garken

A cikin rajistan ayyukan, mun sami damar yin waƙa da wannan abu kawai ta hanyar IP - babu buƙatar ko wasu bayanai, kamar yadda ake iya gani daga misalin da ke sama. Babban sanannen matsayi shine 0, amma na san cewa ban katse buƙatar ba! Na fara gano abin da zai iya faruwa ba daidai ba. Kuma komai ya zama mai sauqi qwarai:

saurare 443 ssl http2 baya=8192;

To, idan kuna amfani da http2 don haɗin ssl, to bai isa kawai don saita buffers ɗin buffer ba, dole ne kuma a daidaita su a cikin ngx_http_v2_module, wato:

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

Yana iyakance matsakaicin girman babban buƙatun da aka matsa ta amfani da HPACK. Ƙuntatawa ya shafi daidai da duka suna da ƙimar. Idan aka yi amfani da rufaffiyar Huffman, ainihin girman sunan da ba a tattara ba da kirtani ƙila ya fi girma. Iyakar tsoho ya dace da yawancin tambayoyin.

Gabaɗaya, wannan shine. Kuma me yasa duk? Domin tsayin hanyar haɗin yana da tsawo - ya fi tsayi fiye da waɗanda 4k guda ɗaya.

Ta hanyar saita shi zuwa, misali, 8kb (ko gwargwadon iya isa), muna magance matsalar.
Don haka yana tafiya.

source: www.habr.com

Add a comment