Olen käyttänyt Alibaba Cloud SLB -kuormantasapainotinta yli viisi vuotta, ja olen käyttänyt sitä alkuperäisestä Alibaba Cloudin sisäisestä betaversiosta lähtien, ja käyttöönoton jälkeen tapahtui seuraava virhe:
Virheitä esiintyy ajoittain, alun käynnistyksen jälkeen ei tule 502-yhdyskäytävän virhettä, minuutin odotuksen jälkeen virhe ilmestyy, Windows Server IIS -kontti ASP.NET verkkosivusto.
Klikkaa palvelimen IIS-painiketta avataksesi selaimen, voit selata normaalisti, SLB:n kuormitustasapainotus on epäsuoria ongelmia, tämä on ensimmäinen kerta kun törmäsin siihen.
Ratkaisu:
Ongelma ilmenee pääasiassa "Health Check Method" -asetuksissa, oletusasetukset ovat seuraavat:
Backendin kuntotarkistus pyydetään etukäteen, ja jos vastaava tilakoodi palauttaa 2xx tai 3xx, backend-palvelin katsotaan normaaliksi.
Yritimme tehdä otsikkopyynnön kolmella tavalla: ensinnäkin suoritin paikallisen projektin suoraan ja testasin sen paikallisesti.
Testi 1:
Käytä postimiehen testiä alla esitetyn mukaisesti:
Palatakseni 404 Not Found -tilaan, itse asiassa tiedämme, mikä sen aiheutti.
Testi 2:
Käytä curl-testausta kuten alla on esitetty:
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 ei löytynyt
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
Palautettiin myös 404-tilakoodi.
Testi 3:
Tällä kertaa testasimme suoraan virallisella palvelimella, PowerShellin curl-testin kautta, kuten alla olevassa kuvassa näkyy:
Näet, että sama sivu pyydetään otsikon kautta,Joskus palaavat404tilakoodi, joskus palautettu200Tilakoodi, vahvistaen näin ajoittaiset 502-virheet, joita kohtasimme alussa.
Mikä aiheuttaa asp.net 404- ja 200-tilakoodit palaavat ajoittain?
Koska kotisivullamme on välimuisti, kun käyttäjä käyttää get-menetelmää kotisivun pyytämiseen, sivu välimuistitetaan onnistuneesti, ja sitten head ja get palauttavat aina välimuistissa olevan sivun, ja palauttavat myös 200 vastauskoodin. Jos välimuistin vanhentumisen jälkeen kukaan käyttäjä ei tee get-metodipyyntöä, vaan vain pää-metodipyynnön komennon kautta, tapahtuu 404-virhe. Arvioidaan, että harva kohtaa tällaisen ongelman.
Ratkaisu on tarkistaa kaikki vastetilakoodit terveystarkastustilassa, kuten alla olevassa kuvassa näkyy:
Kuinka selvittää Layer 7 Listening (HTTP/HTTPS) -terveystarkastusten poikkeavuuksia:Hyperlinkin kirjautuminen on näkyvissä.
(Loppu)
|