Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 14033|Відповідь: 0

Рішення для балансування навантаження Alibaba Cloud SLB для помилки 502 поганого шлюзу шлюзу

[Копіювати посилання]
Опубліковано 13.08.2019 14:42:43 | | | |
Я користуюся балансуванням навантаження Alibaba Cloud SLB вже понад 5 років і користуюся ним з моменту початкової внутрішньої бета-версії Alibaba Cloud, а після розгортання виникла така помилка:



502 Bad Gateway

Помилки виникають періодично, після початкового завантаження помилки шлюзу 502 немає, після хвилини очікування з'являється помилка, контейнер Windows Server IIS ASP.NET вебсайті.

Натисніть IIS із сервера, щоб відкрити браузер, можна нормально переглядати, проблеми з балансуванням навантаження SLB — це вперше я з цим стикаюся.

Рішення:

Проблема здебільшого виникає в налаштуваннях «Health Check Method», стандартні налаштування такі:



Перевірка стану бекенду запрашується в Headway, і якщо відповідний статус дає 2xx або 3xx, бекенд-сервер вважається нормальним.

Ми намагалися зробити запит на заголовок трьома способами: по-перше, я безпосередньо запустив локальний проєкт і протестував його локально.

Тест 1:

Використовуйте тест листоноші, як показано нижче:



Повертаючись до стану 404 Not Found, тут ми знаємо, що це спричинило.

Тест 2:

Використовуйте тестування на згинання, як показано нижче:

Завантаження Windows (64-біт) за допомогою команди 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, з якими ми стикалися на початку.

Що спричиняє періодичне повернення статусних кодів 404 і 200 asp.net періодично?

Оскільки на нашій головній сторінці є кеш, коли користувач використовує метод get для запиту на головну сторінку, сторінка буде успішно кешована, і тоді голова і get завжди повертатимуть кешовану сторінку, а також верне код відповіді 200, якщо після закінчення кешу жоден користувач не зробить запит на метод get, а лише головний метод через команду, виникає помилка 404. Оцінюється, що мало хто зіткнеться з такою проблемою.

Рішення полягає в тому, щоб перевірити всі коди статусу відповіді в режимі перевірки здоров'я, як показано на рисунку нижче:



Як усунути аномалії перевірки здоров'я на рівні 7 (HTTP/HTTPS):Вхід за гіперпосиланням видно.

(Кінець)




Попередній:Особливості використання Amazon AWS CloudFront
Наступний:День 76 у Шеньчжені
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com