Es izmantoju Alibaba Cloud SLB slodzes balansētāju vairāk nekā 5 gadus, un es to izmantoju kopš sākotnējās Alibaba Cloud iekšējās beta versijas, un pēc izvietošanas radās šāda kļūda:
Kļūdas rodas periodiski, pēc sākotnējās palaišanas nav 502 vārtejas kļūdas, pēc minūtes gaidīšanas parādās kļūda, aizmugures Windows Server IIS konteiners ASP.NET vietni.
Noklikšķiniet uz IIS no servera, lai atvērtu pārlūkprogrammu, jūs varat pārlūkot normāli, SLB slodzes līdzsvarošanas netiešās problēmas, šī ir pirmā reize, kad es ar to saskāros.
Šķīdums:
Problēma galvenokārt parādās iestatījumos "Veselības pārbaudes metode", noklusējuma iestatījumi ir šādi:
Aizmugures veselības pārbaude tiek pieprasīta galvas veidā, un, ja atbilstošais statusa kods atgriež 2xx vai 3xx, aizmugures serveris tiek uzskatīts par normālu.
Mēs mēģinājām veikt galvenes pieprasījumu trīs veidos, pirmkārt, es tieši vadīju vietējo projektu un pārbaudīju to lokāli.
1. tests:
Izmantojiet pastnieka testu, kā parādīts zemāk:
Atgriežoties pie 404 Not Found stāvokļa, patiesībā šeit mēs zinām, kas to izraisīja.
2. tests:
Izmantojiet čokurošanās testēšanu, kā parādīts tālāk:
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 nav atrasts
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
Atgriezts arī 404 statusa kods.
3. tests:
Šoreiz mēs pārbaudījām tieši oficiālajā serverī, izmantojot čokurošanās testu saskaņā ar PowerShell, kā parādīts zemāk redzamajā attēlā:
Jūs varat redzēt, ka tā pati lapa tiek pieprasīta caur galvu,Dažreiz atgriezties404statusa kods, dažreiz atgriezts200Statusa kods, tādējādi apstiprinot periodiskās 502 kļūdas, ar kurām mēs saskārāmies sākumā.
Kas izraisa asp.net periodisku 404 un 200 statusa kodu atgriešanu?
Tā kā mūsu mājaslapā ir kešatmiņa, kad lietotājs izmanto get metodi, lai pieprasītu mājaslapu, lapa tiks veiksmīgi saglabāta kešatmiņā, un pēc tam galva un get vienmēr atgriezīs kešatmiņā saglabāto lapu, kā arī atgriezīs 200 atbildes kodu, ja pēc kešatmiņas derīguma termiņa beigām neviens lietotājs neveic get metodes pieprasījumu, tikai galvas metodes pieprasījumu, izmantojot komandu, radīsies 404 kļūda. Tiek lēsts, ka tikai daži cilvēki saskarsies ar šāda veida problēmām.
Risinājums ir pārbaudīt visus atbilžu statusa kodus veselības pārbaudes režīmā, kā parādīts zemāk redzamajā attēlā:
Kā novērst 7. slāņa klausīšanās (HTTP/HTTPS) veselības pārbaudes novirzes:Hipersaites pieteikšanās ir redzama.
(Beigas)
|