"Alibaba Cloud SLB" apkrovos balansavimo priemonę naudoju daugiau nei 5 metus ir naudoju ją nuo pradinės "Alibaba Cloud" vidinės beta versijos, o po įdiegimo įvyko ši klaida:
Klaidos pasitaiko su pertraukomis, iš pradžių paleidus, nėra 502 šliuzo klaidos, palaukus minutę, pasirodo klaida, galinis "Windows Server IIS" konteineris ASP.NET svetainėje.
Spustelėkite IIS iš serverio atidaryti naršyklę, galite naršyti normaliai, SLB apkrovos balansavimo netiesioginės problemos, tai yra pirmas kartas, kai aš susidūriau su juo.
Sprendimas:
Problema daugiausia atsiranda "Sveikatos patikrinimo metodo" nustatymuose, numatytieji nustatymai yra šie:
Užpakalinės sistemos būklės patikrinimo prašoma iš anksto, o jei atitinkamas būsenos kodas grąžina 2xx arba 3xx, galinis serveris laikomas normaliu.
Mes bandėme pateikti antraštės užklausą trimis būdais, pirma, aš tiesiogiai paleidau vietinį projektą ir išbandžiau jį vietoje.
1 bandymas:
Naudokite paštininko testą, kaip parodyta toliau:
Grįžtant prie 404 nerastos būsenos, iš tikrųjų čia žinome, kas tai sukėlė.
2 bandymas:
Naudokite garbanų testavimą, kaip parodyta toliau:
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 nerastas
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
Taip pat grąžintas 404 būsenos kodas.
3 bandymas:
Šį kartą išbandėme tiesiai oficialiame serveryje, atlikdami garbanojimo testą "PowerShell", kaip parodyta paveikslėlyje žemiau:
Galite pamatyti, kad to paties puslapio prašoma per galvą,Kartais grįžti404būsenos kodas, kartais grąžinamas200Būsenos kodas, taip patvirtinant protarpines 502 klaidas, su kuriomis susidūrėme pradžioje.
Dėl ko asp.net su pertraukomis grąžinami 404 ir 200 būsenos kodai?
Kadangi mūsų pagrindiniame puslapyje yra talpykla, kai vartotojas naudoja get metodą pagrindinio puslapio užklausai, puslapis bus sėkmingai saugomas talpykloje, o tada head ir get visada grąžins talpykloje saugomą puslapį, taip pat grąžins 200 atsakymo kodą, jei pasibaigus talpyklos galiojimo laikui nė vienas vartotojas nepateiks get metodo užklausos, tik head metodo užklausą per komandą, įvyks 404 klaida. Manoma, kad mažai žmonių susidurs su tokia problema.
Sprendimas yra patikrinti visus atsakymo būsenos kodus būklės patikrinimo režimu, kaip parodyta paveikslėlyje žemiau:
Kaip pašalinti 7 lygmens klausymosi (HTTP/HTTPS) būklės patikrinimo sutrikimus:Hipersaito prisijungimas matomas.
(Pabaiga)
|