Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 14033|Отговор: 0

Решение за балансиране на натоварването на Alibaba Cloud SLB за грешка в шлюза 502

[Копирай линк]
Публикувано в 13.08.2019 г. 14:42:43 ч. | | | |
Използвам Alibaba Cloud SLB load balancer повече от 5 години и го използвам от първоначалната вътрешна бета версия на Alibaba Cloud, а след внедряването възникна следната грешка:



502 Bad Gateway

Грешките се появяват периодично, след първоначално стартиране, няма грешка на 502 gateway, след като изчакаш минута, грешката се появява, контейнерът на Windows Server IIS ASP.NET уебсайта.

Кликни на IIS от сървъра, за да отвориш браузъра, можеш да разглеждаш нормално, SLB балансира натоварването с косвени проблеми, това е първият път, когато се сблъсквам с това.

Решение:

Проблемът се появява основно в настройките "Health Check Method", като по подразбиране са следните:



Проверката на здравето на бекенда се иска в началото и ако съответният статус върне 2xx или 3xx, бекенд сървърът се счита за нормален.

Опитахме се да направим заявка за хедър по три начина – първо, директно стартирах локалния проект и го тествах локално.

Тест 1:

Използвайте теста на пощальона, както е показано по-долу:



Връщайки се към състоянието 404 Not Found, всъщност тук знаем какво го е причинило.

Тест 2:

Използвайте тестване на къдрици, както е показано по-долу:

Изтегляне на Windows (64-bit) чрез командата curl с инструмента
https://www.itsvse.com/thread-3409-1-1.html
(Източник: 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 Не е намерено
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



Върнат е и статус код 404.

Тест 3:

Този път тествахме директно на официалния сървър, чрез теста за curl под PowerShell, както е показано на фигурата по-долу:



Виждате, че същата страница се иска през заглавието,Понякога се връщат404статус код, понякога връщан200Статус код, потвърждавайки се прекъсващите 502 грешки, които срещнахме в началото.

Какво причинява asp.net периодично връщане на статусни кодове 404 и 200?

Тъй като нашата начална страница има кеш, когато потребителят използва метода get, за да поиска началната страница, страницата ще бъде успешно кеширана, след което head и get винаги ще върнат кешираната страница, и също така ще върнат 200 отговорен код; ако след изтичането на кеша никой потребител не направи заявка за get метод, а само head method заявка чрез командата, ще възникне грешка 404. Оценява се, че малко хора ще се сблъскат с такъв проблем.

Решението е да се проверят всички кодове за статус на отговора в режима на здравна проверка, както е показано на фигурата по-долу:



Как да диагностицирам аномалии при проверка на здравето при Layer 7 Listening (HTTP/HTTPS):Входът към хиперлинк е видим.

(Край)




Предишен:Съображения при използването на Amazon AWS CloudFront
Следващ:Ден 76 в Шенжен
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com