Как да внедрите ефективни проверки на здравето в HAProxy

Kak Da Vnedrite Efektivni Proverki Na Zdraveto V Haproxy



Настройването на вашия HAProxy да действа като балансиращо натоварване е непълно, ако не обмислите ефективни проверки на изправността на сървъра. Внедряването на проверките на здравето помага за подобряване на надеждността и достъпността на приложението. HAProxy поддържа прилагането на проверки на здравето, които проверяват бекенд сървърите, за да се уверят, че тяхното здравословно състояние е подходящо за използване.

Само сървърите, които преминават проверките на здравето, се добавят към ротацията. По този начин сървър няма да бъде избран за използване, ако не премине проверката на състоянието, което минимизира шансовете за прекъсване. В тази публикация ще се задълбочим в разбирането как работят проверките на здравето в HAProxy и какво е необходимо, за да се приложи ефективна проверка на здравето. Нека да започнем!

Какво представляват проверките на здравето в HAProxy

Когато конфигурирате HAProxy, една от задачите е да посочите какви бекенд сървъри да използвате за вашето приложение. По този начин трафикът ще се разпределя към сървърите, за да се избегне претоварването на всеки сървър. Въпреки това проверките на здравето помагат да се установи, че сървърът е избран да обработва трафика само ако е наред.







Проверките на здравето се извършват на всеки сървър и само тези, които преминат, се добавят към ротацията за използване при балансиране на натоварването. Проверките за изправност се извършват чрез изпращане на заявки, като TCP или HTTP, до предварително дефинирана крайна точка на вашия бекенд сървър. Резултатите за изправност, които се изпращат обратно от бекенд сървъра, определят неговия статус. Например, състоянието на сървъра може да показва НАГОРЕ или НАДОЛУ или да изпрати състояние ОК 200, което потвърждава, че сървърът е здрав.



При конфигуриране на проверките на здравето се уверете, че имате предварително дефинирана крайна точка, която да използвате за проверките на здравето. Има различни опции, които можете да използвате, за да настроите вашата крайна точка. Например, можете да върнете код за състояние или съобщение в зависимост от състоянието на сървъра. Всички проверки на здравето са дефинирани в бекенд секцията на вашия HAProxy конфигурационен файл. Отворете конфигурационния файл и създайте раздела за интерфейса.



$ sudo nano /etc/haproxy/haproxy.cfg

Ето основен пример за секция на интерфейса, която свързва порт 80, задава страница със статистика и определя бекенда по подразбиране.





Следващата стъпка е да създадете бекенд секцията. Следват различни примери за това как да се приложи ефективна проверка на здравето в HAProxy.



Пример 1: Внедряване на ефективни активни проверки на здравето

Лесен начин за прилагане на проверките на здравето в HAProxy е чрез задаване на активните проверки на здравето. С тази опция HAProxy ще се опита да се свърже със сървъра. Ако не бъде изпратен отговор, той счита сървъра за нездравословен и го премахва от ротацията. Начинът по подразбиране за прилагане на активните проверки на здравето е чрез добавяне на ключовата дума „проверка“ на всеки сървърен ред, за да може HAProxy да ги проверява всички.

Въпреки че този първи пример работи, това не е най-добрият начин за прилагане на проверките на здравето. Освен това използва настройките по подразбиране. Например интервалът между проверките, означен като inter, е зададен на две секунди. Падането, броят на разрешените неуспешни проверки, е зададен на три. За да коригирате тези настройки, задайте предпочитаното време и брой проверки, както е показано в следния пример:

Пример 2: Внедряване на HTTP Health Check

С HTTP проверка на здравето, HAProxy ще изпрати HTTP заявка до всички сървъри с ключовата дума „проверка“. Въз основа на отговора той заключава състоянието на сървъра. Примерите за успешни отговори на сървъра попадат в диапазона от 2xx или 3xx. Отговор като 200 OK означава, че сървърът е в добро състояние.

За този пример добавете реда „option httpchk“ във вашия бекенд.

Пример 3: Работа с GET заявка

HAProxy изпраща GET заявка към пътя „/“, когато прави HTTP заявка. Ако обаче вашата крайна точка е конфигурирана в друг път, можете да посочите URL пътя като „/health“ и HAProxy ще изпрати GET заявката до него.

Въз основа на вашата крайна точка сървърът ще използва отговора, за да определи състоянието на сървъра. Ето как да го приложите:

Пример 4: Задаване на път на GET заявка и статус на отговор

С крайна точка можете да посочите какъв успешен отговор да очаквате от GET заявката за крайна точка, за да определите състоянието на сървъра. За този пример пътят на нашата GET заявка е „/health“ и очакваме състояние на отговор 200, за да потвърдим, че сървърът е в добро състояние, за да се справи с балансирането на натоварването и други задачи.

След като промените конфигурационния файл на HAProxy, рестартирайте HAProxy, за да влязат в сила промените.

Това е! Вие внедрихте ефективните проверки на здравето на вашия HAProxy. Можете да получите достъп до страницата със статистика или да проверите регистрационния файл със следната команда, за да потвърдите, че проверките на здравето работят според очакванията:

$ опашка -f /var/log/haproxy.log

Заключение

Можете да приложите ефективна проверка на здравето в HAProxy по различни начини. Проверките на здравето се изпълняват в бекенд секцията на конфигурационния файл на HAProxy и тази публикация даде различни примери за това как да го направите. Проверете вашия идеален метод и удобно внедрете ефективна проверка на здравето в HAProxy.