ProHoster > Блог > Isakoso > Lati igbesi aye pẹlu Kubernetes: Bawo ni olupin HTTP ko ṣe ojurere fun awọn ara ilu Sipeeni
Lati igbesi aye pẹlu Kubernetes: Bawo ni olupin HTTP ko ṣe ojurere fun awọn ara ilu Sipeeni
Aṣoju ti alabara wa, ẹniti akopọ ohun elo n gbe inu awọsanma lati Microsoft (Azure), koju iṣoro kan: laipẹ, diẹ ninu awọn ibeere lati ọdọ awọn alabara kan lati Yuroopu bẹrẹ si pari pẹlu aṣiṣe 400 (Ibere buruku). Gbogbo awọn ohun elo ni a kọ sinu .NET, ti a fi ranṣẹ si Kubernetes ...
Ọkan ninu awọn ohun elo ni API, nipasẹ eyiti gbogbo awọn ijabọ ba wa nikẹhin. Ti tẹtisi ijabọ yii nipasẹ olupin HTTP kestrel, tunto nipasẹ alabara NET ati gbalejo ni adarọ-ese kan. Pẹlu n ṣatunṣe aṣiṣe, a ni orire ni ori pe olumulo kan wa ti o tun ṣe atunṣe iṣoro naa nigbagbogbo. Sibẹsibẹ, ohun gbogbo ni idiju nipasẹ ẹwọn ijabọ:
Yoo dabi pe tcpdump nikan yoo ṣe iranlọwọ lati yanju iṣoro yii… ṣugbọn Emi yoo tun ṣe nipa pq ijabọ:
Iwadii
O han ni, o dara lati gbọ ijabọ lori ipade kan pato, Nibi ti Kubernetes ti gbe podu kan: iwọn didun ti idalẹnu yoo jẹ iru pe yoo ṣee ṣe lati wa o kere ju ohun kan lẹwa ni kiakia. Ati nitootọ, nigbati o ṣe ayẹwo rẹ, a ṣe akiyesi fireemu atẹle:
Nigbati o ba wo isunmọ ti idalẹnu naa, a ṣe akiyesi ọrọ naa M.laga. O rorun lati gboju le won pe ko si ilu M.laga ni Spain (ṣugbọn o wa Malaga). Ni gbigba lori imọran yii, a wo awọn atunto Ingress, nibiti a ti rii ọkan ti a fi sii ni oṣu kan sẹhin (ni ibeere alabara) "laiseniyan" snippet:
Yoo pada 400 Bad request - ninu akọọlẹ ohun elo a yoo gba aṣiṣe kan ti o ti mọ tẹlẹ si wa:
{
"@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
}
Awọn esi
Ni pato Kestrel ko le Ilana HTTP ti o tọ pẹlu awọn ohun kikọ ti o pe ni UTF-8, eyiti o wa ninu awọn orukọ ti nọmba nla ti awọn ilu.
Ohun afikun ninu ọran wa ni pe alabara ko gbero lọwọlọwọ lati yi imuse ti Kestrel pada ninu ohun elo naa. Sibẹsibẹ, awọn iṣoro ni AspNetCore funrararẹ (No.4318, No.7707) wọn sọ pe eyi kii yoo ran...
Lati ṣe akopọ: akọsilẹ ko si nipa awọn iṣoro kan pato ti Kestrel tabi UTF-8 (ni ọdun 2019?!), Ṣugbọn nipa otitọ pe iṣaro ati ikẹkọ deede Gbogbo igbesẹ ti o ba ṣe lakoko wiwa awọn iṣoro yoo pẹ tabi nigbamii so eso. Orire daada!