Jeg har brukt Alibaba Cloud SLB lastbalanserer i mer enn 5 år, og jeg har brukt den siden den første interne betaen av Alibaba Cloud, og etter utrulling oppsto følgende feil:
Feil oppstår sporadisk, etter første oppstart er det ingen 502-gateway-feil, etter å ha ventet et minutt, oppstår feilen, backend Windows Server IIS-containeren ASP.NET nettsiden.
Klikk på IIS fra serveren for å åpne nettleseren, du kan bla normalt, SLB lastbalanserer indirekte problemer, dette er første gang jeg har støtt på det.
Løsning:
Problemet dukker hovedsakelig opp i "Health Check Method"-innstillingene, standardinnstillingene er som følger:
Backend-helsesjekken forespørres i headway, og hvis den tilsvarende statuskoden returnerer 2xx eller 3xx, regnes backend-serveren som normal.
Vi prøvde å sende en header-forespørsel på tre måter: Først kjørte jeg det lokale prosjektet direkte og testet det lokalt.
Prøve 1:
Bruk postbudtesten som vist nedenfor:
Tilbake til 404 Not Found-tilstanden, faktisk vet vi her hva som forårsaket det.
Test 2:
Bruk krølltesting som vist nedenfor:
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 Ikke funnet
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
Også returnert er en 404-statuskode.
Prøve 3:
Denne gangen testet vi direkte på den offisielle serveren, gjennom curl-testen under PowerShell, som vist i figuren under:
Du kan se at samme side er forespurt gjennom hodet,Noen ganger kommer de tilbake404Statuskode, noen ganger returnert200Statuskode, og bekrefter dermed de sporadiske 502-feilene vi støtte på i starten.
Hva forårsaker at asp.net periodisk returnerer 404- og 200-statuskoder?
Siden hjemmesiden vår har en cache, vil siden bli cachet når brukeren bruker get-metoden for å be om hjemmesiden, og deretter vil head og get alltid returnere den bufrede siden, og også returnere 200-svarkoden. Hvis ingen bruker gjør en get-metodeforespørsel etter at cachen utløper, kun head-metodeforespørselen via kommandoen, vil en 404-feil oppstå. Det anslås at få vil møte denne typen problemer.
Løsningen er å sjekke alle responsstatuskoder i helsesjekkmodus, som vist i figuren nedenfor:
Hvordan feilsøke helsesjekkavvik i lag 7-lytting (HTTP/HTTPS):Innloggingen med hyperkoblingen er synlig.
(Slutt)
|