Инсталиране на HAProxy 1.7 на Debian 9.1 (разтягане)

HAProxy е мрежово софтуерно приложение, което предлага висока наличност, балансиране на натоварването и прокси за TCP и HTTP мрежови приложения. Той е подходящ за уебсайтове с голям трафик и захранва много популярни сайтове в мрежата. Тази статия ще ви покаже как да инсталирате и конфигурирате HAProxy на Debian 9.1.

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

Изисквания

  • Най-малко два сървъра Vultr (за функционалност за балансиране на натоварването) с вашия уебсайт или уеб приложение, разположени и на двата.

Инсталиране на HAProxy

Debian 9 вече се доставя с HAProxy 1.7 (най-новата стабилна версия към момента на писане) и можем просто да го инсталираме с помощта на apt-get:

# apt-get update
# apt-get install haproxy

Ако предишните команди са били успешни, значи сте инсталирали HAProxy и можете да продължите към следващата стъпка.

Конфигуриране на HAProxy

Конфигурационният файл на HAProxy е разделен на две секции - "глобален" и "прокси сървър". Едната се занимава с конфигурация за целия процес, докато последната се състои от конфигурация по подразбиране, преден интерфейс и бекенд секции.

Глобална секция

Използвайки любимия си текстов редактор, отворете /etc/haproxy/haproxy.cfgи забележете предварително дефинираните секции: "глобален" и "по подразбиране". Първото нещо, което може да искате да направите, е да увеличите maxconnдо разумен размер, тъй като това се отразява на връзките, които HAProxy позволява. Твърде много връзки може да доведе до срив на вашата уеб услуга поради много заявки. Ще трябва да коригирате размера, за да видите какво работи за вас. В глобалната секция избрахме maxconnстойност от 3072.

global
    daemon
    maxconn 3072

В секцията по подразбиране добавете следния ред под режим http:

option forwardfor

Това ще добави X-Forwarded-Forзаглавки към всяка заявка, което позволява на вашите бекенд сървъри да научат оригиналния IP адрес на потребителя.

Също така добавете този ред, за да активирате режима за затваряне на HTTP връзка от страна на сървъра, като същевременно запазите възможността за поддръжка на HTTP поддържане на активност от страна на клиента. Това намалява латентността от страна на клиента и помага за спестяване на ресурсите на сървъра:

option http-server-close

Ако искате да използвате keep-alive както от страна на клиента, така и от страна на сървъра, тогава можете да използвате option http-keep-aliveвместо това. Тази опция е особено полезна, когато разходите за установяване на нова връзка със сървъра са значителни в сравнение с разходите за извличане на искания ресурс.

Накрая полученият конфигурационен файл ще изглежда така:

defaults
    mode http
    option forwardfor
    option http-server-close
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

Секция за пълномощници

За да настроите прокси сървъра си, ще трябва да добавите две секции към конфигурационния файл, за да дефинирате двете части на прокси сървъра: предната и задната част.

Конфигурация на предната част

Предният интерфейс ще обработва вашите HTTP връзки. Добавете следното в края на вашия haproxy.cfgфайл:

frontend http-frontend
    bind public_ip:80
    reqadd X-Forwarded-Proto:\ http
    default_backend wwwbackend

Не забравяйте да замените public_ipс публичния IP адрес или име на домейн на вашия сървър.

Бекенд конфигурация

Настройте своя бекенд, като добавите следните редове в края на вашия конфигурационен файл:

backend wwwbackend
    server 1-www server1_ip:80 check
    server 2-www server2_ip:80 check
    server 3-www server3_ip:80 check

Използваната тук бекенд конфигурация създава 3 връзки с име X-www. ( Xе 1, 2 или 3.) Всеки от тях съответства на serverX_ip:80 адрес. (Заменете serverX_ipс IP адресите на вашите Vultr екземпляри.) Това ще ви позволи да балансирате натоварването между всеки сървър в определения набор от сървъри (ако приемем, че всеки IP адрес съответства на различен сървър). В checkопцията прави натоварването стабилизатор извърши проверки на здравето на сървъра.

Запазете конфигурационния файл и след това рестартирайте HAProxy:

service haproxy restart

Ако всичко работи, тогава ще можете да се свържете http://public_ip/(заменяйки го с вашия публичен IP или име на домейн, както е конфигурирано в стъпката на интерфейса) и да видите вашия уебсайт.

Грешки при отстраняване на грешки

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

# haproxy -f /etc/haproxy/haproxy.cfg

Например, ако видите изход като този:

[ALERT] 234/195612 (2561) : parsing [/etc/haproxy/haproxy.cfg:48] : server 1-www has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 234/195612 (2561) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 234/195612 (2561) : Fatal errors found in configuration.

След това сте забравили да посочите номера на порта за сървъра 1-www.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

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

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

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

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

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

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече