Több mint 5 éve használom az Alibaba Cloud SLB terheléselosztót, és az Alibaba Cloud belső bétája kezdete óta használom, és a telepítés után a következő hiba történt:
Hibák időnként előfordulnak, az első indítás után nincs 502 átjáró hiba, egy perc várakozás után megjelenik a hiba, a háttér Windows Server IIS konténerében ASP.NET weboldal.
Kattints a szerverről az IIS-re, hogy megnyitod a böngészőt, akkor normálisan böngészhetsz, SLB terheléselosztási közvetett problémák, ez az első alkalom, hogy találkozom vele.
Megoldás:
A probléma főként a "Egészségellenőrzési módszer" beállításaiban jelentkezik, az alapértelmezett beállítások a következők:
A háttérrendszer állapotellenőrzését a Headway állapotban kérik, és ha a megfelelő állapotkód 2xx vagy 3xx visszaadja a backend szervert, a backend szervert normálisnak tekintik.
Háromféleképpen próbáltunk fejléckérést készíteni: először közvetlenül futtattam a helyi projektet, és helyben teszteltem.
1. teszt:
Használd a postás tesztet az alábbiak szerint:
Visszatérve a 404-es Nem Talált állapothoz, itt valójában tudjuk, mi okozta.
2. teszt:
Használd a göndör tesztet az alábbiak szerint:
C:\Users\itsvse>curl -i -X HEAD http://localhost:60155/
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead. HTTP/1.1 404 nem talált
Cache-Control: private
Content-Length: 4432
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?QzpccHJvamVjdFxteVxDb2RlU2hhcmluZ1xDb2RlU2hhcmluZy5XZWJVSVxIb21lXEVycm9yNDA0?=
X-Powered-By: ASP.NET
Date: Tue, 13 Aug 2019 03:53:04 GMT
curl: (56) Recv failure: Connection was reset
Visszaküldött egy 404-es státuszkód is.
3. teszt:
Ezúttal közvetlenül a hivatalos szerveren teszteltünk, a PowerShell alatt lévő curl teszten keresztül, ahogy az alábbi ábrán látható:
Láthatod, hogy ugyanazt az oldalt kérik a fejen keresztül,Néha visszatérnek404Státuszkód, néha visszaadva200Állapotkód, így megerősítve az elején tapasztalt, időszakos 502 hibákat.
Mi okozza asp.net időnként visszatérni a 404 és 200 státuszkódokat?
Mivel a kezdőlapunknak van gyorsítótára, amikor a felhasználó a get módszerrel kéri a kezdőlapot, az oldal sikeresen előtérbe kerül, majd a fej és get mindig visszaadja a gyorsítótározott oldalt, és visszaadja a 200 válaszkódot is, ha a cache lejárta után egyik felhasználó sem kér get metóduskérést, csak a fej metódus kérését a parancson keresztül, akkor 404 hiba jelentkezik. Becslések szerint kevesen találkoznak ilyen problémával.
A megoldás az, hogy minden válaszállapotkódot ellenőrizünk az egészségügyi ellenőrzés módban, ahogy az alábbi ábrán látható:
Hogyan lehet hibakeresést végezni a 7. réteg hallgatás (HTTP/HTTPS) egészségügyi ellenőrzési rendellenességeiben:A hiperlink bejelentkezés látható.
(Vége)
|