Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 14033|Răspunde: 0

Soluție de echilibrare a încărcării Alibaba Cloud SLB pentru eroarea 502 proastă a gateway-ului

[Copiază linkul]
Postat pe 13.08.2019 14:42:43 | | | |
Folosesc load balancer Alibaba Cloud SLB de mai bine de 5 ani și îl folosesc încă de la beta internă inițială Alibaba Cloud, iar după implementare, a apărut următoarea eroare:



502 Bad Gateway

Erorile apar intermitent, după pornirea inițială, nu apare nicio eroare gateway 502, iar după un minut de așteptare, apare eroarea, containerul Windows Server IIS ASP.NET site-ul backend.

Apasă pe IIS de pe server pentru a deschide browserul, poți naviga normal, probleme indirecte de echilibrare a încărcării SLB, este prima dată când mă confrunt cu asta.

Soluție:

Problema apare în principal în setările "Health Check Method", setările implicite fiind următoarele:



Verificarea stării de sănătate backend este solicitată în headway, iar dacă codul de stare corespunzător returnează 2xx sau 3xx, serverul backend este considerat normal.

Am încercat să facem o cerere de antet în trei moduri: mai întâi, am rulat direct proiectul local și l-am testat local.

Test 1:

Folosește testul poștașului așa cum este prezentat mai jos:



Revenind la starea 404 Not Found, de fapt, aici știm ce a cauzat-o.

Test 2:

Folosește testarea curl, așa cum se arată mai jos:

Windows (64-bit) descarcă folosind comanda curl cu instrumentul
https://www.itsvse.com/thread-3409-1-1.html
(Sursa: Architect_Programmer)
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 Negăsit
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



De asemenea, este returnat un cod de stare 404.

Testul 3:

De data aceasta, am testat direct pe serverul oficial, prin testul de curl sub PowerShell, așa cum se vede în figura de mai jos:



Poți vedea că aceeași pagină este solicitată prin cap,Uneori se întoarce404cod de status, uneori returnat200Cod de stare, confirmând astfel erorile intermitente 502 pe care le-am întâlnit la început.

Ce cauzează asp.net returnează intermitent codurile de status 404 și 200?

Deoarece pagina noastră principală are cache, când utilizatorul folosește metoda get pentru a solicita pagina principală, pagina va fi stocată cu succes în cache, iar apoi head-ul și get vor returna întotdeauna pagina cache-uită, și vor returna și codul de răspuns 200; dacă, după expirarea cache-ului, niciun utilizator nu face o cerere get method, ci doar cererea metodei head prin comandă, va apărea o eroare 404. Se estimează că puțini oameni se vor confrunta cu astfel de probleme.

Soluția este verificarea tuturor codurilor de stare a răspunsului în modul de verificare a sănătății, așa cum se arată în figura de mai jos:



Cum să depanezi anomaliile verificării de sănătate la Ascultarea de Nivel 7 (HTTP/HTTPS):Autentificarea cu hyperlink este vizibilă.

(Sfârșit)




Precedent:Considerații pentru utilizarea Amazon AWS CloudFront
Următor:Ziua 76 la Shenzhen
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com