ProHoster > Blog > Rêveberî > Ji jiyana bi Kubernetes re: Çawa servera HTTP-ê ji Spanyolan re ne xweş kir
Ji jiyana bi Kubernetes re: Çawa servera HTTP-ê ji Spanyolan re ne xweş kir
Nûnerê muwekîlê me, ku stûna serîlêdana wî di ewrê Microsoft-ê (Azure) de dimîne, pirsgirêkek çareser kir: di van demên dawî de, hin daxwazên hin xerîdarên ji Ewrûpayê bi xeletiya 400 bi dawî bûn (Daxwaza xirab). Hemî serîlêdan di .NET-ê de têne nivîsandin, li Kubernetes têne bicîh kirin…
Yek ji serîlêdanan API ye, ku di dawiyê de hemî seyrûsefer tê. Ev seyrûsefer ji hêla servera HTTP ve tê guhdarî kirin kestrel, ji hêla muwekîlê .NET-ê ve hatî mîheng kirin û di nav podek de tête kirin. Digel debugkirinê, em di vê wateyê de bi şens bûn ku bikarhênerek taybetî hebû ku bi domdarî pirsgirêk ji nû ve hilberand. Lêbelê, her tişt ji hêla zincîra trafîkê ve tevlihev bû:
Wusa dixuye ku tenê tcpdump dê alîkariya çareserkirina vê pirsgirêkê bike ... lê ez ê di derbarê zincîra trafîkê de dubare bikim:
Lêkirin
Diyar e, çêtir e ku meriv guh bide trafîkê li ser wê girêka taybetî, li cihê ku Kubernetes podek bi cih kiriye: qebareya avêtinê dê wusa be ku dê bi kêmanî tiştek zû zû were dîtin. Û bi rastî, dema ku ew lêkolîn kir, çarçoveya jêrîn hat dîtin:
Li ser vekolîna ji nêz ve ya çopê, peyv hate dîtin M.laga. Hêsan e ku meriv texmîn bike ku li Spanyayê bajarek M.laga tune (lê heye Málaga). Li ser vê ramanê sekinîn, me li mîhengên Ingress nihêrî, li wir me ya ku mehek berê hate xistin (li ser daxwaza xerîdar) dît. perçeyek "bê zirar".:
Dê vegere 400 Bad request - di têketina serîlêdanê de em ê xeletiyek ku jixwe ji me re nas e bistînin:
{
"@t":"2019-03-31T12:59:54.3746446Z",
"@mt":"Connection id "{ConnectionId}" bad request data: "{message}"",
"@x":"Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Malformed request: invalid headers.n at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection.TryParseRequest(ReadResult result, Boolean& endConnection)n at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.<ProcessRequestsAsync>d__185`1.MoveNext()",
"ConnectionId":"0HLLLR1J974L9",
"message":"Malformed request: invalid headers.",
"EventId":{
"Id":17,
"Name":"ConnectionBadRequest"
},
"SourceContext":"Microsoft.AspNetCore.Server.Kestrel",
"ThreadId":71
}
Encam
Bi taybetî Kestrel nikare Sernivîsên HTTP-ê bi tîpên rast ên di UTF-8-ê de, ku di navên hejmareke pir mezin a bajaran de hene, rast bişopînin.
Di doza me de faktorek din ev e ku xerîdar naha plan nake ku pêkanîna Kestrel di serîlêdanê de biguhezîne. Lêbelê, pirsgirêkên di AspNetCore bixwe de (No.4318, No.7707) ew dibêjin ku ev ê ne alîkar be...
Bi kurtasî: not êdî ne li ser pirsgirêkên taybetî yên Kestrel an UTF-8 (di sala 2019 de?!), lê li ser vê yekê ye ku hişmendî û xwendina domdar Her gava ku hûn li pirsgirêkan digerin, zû an dereng dê fêkiyê bide. Bextxweş bî!