Имаме настройка на три машини. Ще инсталираме HAproxy на един сървър и уеб сървърите Apache на два сървъра. След това нашият HAproxy сървър ще действа като балансиращ товар и ще разпредели товара между уеб сървърите на Apache.
Забележка: Процедурата и командите, споменати в този пост, бяха тествани на Ubuntu 20.04 LTS (фокусна ямка). Същата процедура е валидна и за дистрибуциите на Debian и Mint.
Подробности за мрежата
Ще използваме три сървъра на Ubuntu; всички в една и съща мрежа. Подробностите за нашите сървъри са както следва:
Име на хост: HAproxy, IP адрес: 192.168.72.157 (фронт сървър)Име на хост: уеб-сървър1, IP адрес: 192.168.72.158 (бекенд сървъри)
Име на хост: web-server2, IP адрес: 192.168.72.159 (бекенд сървъри)
Забележка: Трябва да имате права на sudo на всички сървъри.
Ще конфигурираме едната машина като балансьор на натоварването, а другите две като уеб сървъри. Сървърът HAproxy ще бъде нашият преден сървър, който ще получава заявките от потребителите и ще ги препраща към двата уеб сървъра. Уеб сървърите ще бъдат нашите Backend сървъри, които ще получават тези препратени заявки.
Ето как изглежда нашата настройка:
Настройка на уеб сървъри-Backend сървъри
В този раздел ще настроим два уеб сървъра (уеб сървър и уеб-сървър2) като нашите бекенд сървъри.
На уеб сървър1 (192.168.72.158)
Изпълнете стъпките по-долу във вашия уеб сървър. Не забравяйте да замените имената на хостове и IP адресите със съответните IP адреси и имена на хостове на вашите уеб сървъри.
1. Конфигурирайте файла с хостове
На уеб сървър, редактирайте / etc / hosts файл:
$ sudo nano / etc / hostsСлед това добавете записа на името на хоста за HAproxy сървър, както следва:
hostname-of-HAproxy IP-адрес-на-HAproxyВ нашия сценарий това би било:
HAproxy 192.168.72.1572. Настройване на уеб сървър Apache
Сега инсталирайте уеб сървъра на Apache, като използвате командата по-долу в терминала. Можете също да посетите нашата публикация на Как да инсталирам уеб сървъра Apache на Linux.
$ sudo apt инсталирайте apache2След това активирайте и стартирайте услугата Apache, като използвате командите по-долу в терминала:
$ sudo systemctl активира apache2$ sudo systemctl стартира apache2
Създайте индексен файл за уеб сървър използвайки командата по-долу в терминала:
$ ехо "Здравейте! Това е уеб сървър1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlАко защитната стена работи на вашата система, ще трябва да разрешите трафик на Apache през нея:
$ sudo ufw позволяват 80 / tcpСлед това презаредете конфигурациите на защитната стена:
$ ufw презаредиСега опитайте да влезете в сайта във вашия уеб браузър, като напишете http: // последвано от IP адреса или името на хоста на вашия уеб сървър.
http: // име на хост или IP-адрес
Освен това можете да използвате командата curl, за да тествате уеб страницата.
$ къдрянеНа уеб сървър-2 192.168.72.159)
Изпълнете стъпките по-долу във втория си уеб сървър. Не забравяйте да замените имената на хостове и IP адресите със съответните IP адреси и имена на хостове на вашите уеб сървъри.
1. Конфигурирайте файла с хостове
В уеб сървър2, редактирайте / etc / hosts файл:
$ sudo nano / etc / hostsСлед това добавете записа на името на хоста за HAproxy сървър, както следва:
HAproxy 192.168.72.1572. Инсталирайте уеб сървър Apache
Сега инсталирайте уеб сървъра на Apache, като използвате командата по-долу в терминала.
$ sudo apt инсталирайте apache2След това активирайте и стартирайте услугата Apache, като използвате командите по-долу в терминала:
$ sudo systemctl активира apache2$ sudo systemctl стартира apache2
Създайте индексен файл за web-server2, като използвате командата по-долу в Terminal:
$ ехо "Здравейте! Това е уеб сървър2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlРазрешаване на Apache в защитната стена:
$ sudo ufw позволяват 80 / tcpи след това презаредете конфигурациите на защитната стена:
$ ufw презаредиСега опитайте да влезете в сайта във вашия уеб браузър, като напишете http: // последвано от IP адреса или името на хоста.
http: // име на хост или IP-адрес
Като алтернатива можете да използвате командата curl, за да тествате уеб страницата.
$ къдрянеСега нашите уеб сървъри на Apache са готови.
Настройване на HAproxy балансир на натоварването-Frontend сървър
В този раздел ще настроим HAproxy балансьор на натоварването за нашия уеб сървъри. Този HAproxy сървър ще действа като преден сървър и приема входящи заявки от клиенти.
На HAproxy сървър (192.168.72.157), изпълнете стъпките по-долу, за да настроите балансиращия товар.
1. Конфигурирайте файла с хостове
Редактирайте / etc / hosts файл, използвайки командата по-долу в терминала:
$ sudo nano / etc / hostsДобавете следните записи на име на хост и за двете Apache уеб сървъри заедно със собственото си име на хост:
192.168.72.157 HAproxy192.168.72.158 уеб сървър
192.168.72.159 уеб сървър2
Сега запазете и затворете / etc / hosts файл.
Инсталиране на балансиращ товара HAproxy
Сега в тази стъпка ще инсталираме HAproxy на един от нашия сървър на Ubuntu (192.168.72.157). За да направите това, актуализирайте apt, като използвате следната команда в терминала:
$ sudo apt-get updateСлед това актуализирайте пакетите, като използвате командата по-долу:
$ sudo apt-get ъпгрейдСега инсталирайте HAproxy, като използвате следната команда в терминала:
$ sudo sudo apt инсталира haproxy
След като инсталацията на HAproxy сървъра приключи, можете да го потвърдите, като използвате командата по-долу в терминала:
$ хапрокси -vТой ще ви покаже инсталираната версия на HAproxy във вашата система, която потвърждава, че HAproxy е инсталиран успешно.
Конфигуриране на HAproxy като балансиращ товар
В следващия раздел ще конфигурираме HAproxy като балансиращ товар. За да направите това, редактирайте / etc / haproxy / haproxy.cfg файл:
$ sudo nano / и т.н. / хапрокси / хапрокси.cfgДобавете следните редове в хапрокси.cfg файл, заместващ IP адресите със собствени IP адреси.
The интерфейс уеб-интерфейс в горните конфигурационни редове казва на HAproxy да слуша входящи заявки на порт 80 на 192.168.72.157 и след това да ги препрати към бекенд сървъри, конфигурирани под бекенд уеб-бекенд. Докато конфигурирате, заменете IP адресите със съответните IP адреси на вашите уеб сървъри.
Конфигуриране на мониторинг на HAproxy
С мониторинга на HAproxy можете да видите много информация, включително състоянието на сървъра, прехвърлените данни, времето за работа, скоростта на сесията и т.н. За да конфигурирате мониторинга на HAproxy, добавете следните редове в конфигурационния файл, намиращ се на / и т.н. / хапрокси / хапрокси.cfg:
слушайте статистикаобвързване 192.168.72.157: 8080
режим http
опция напред за
опция httpclose
статистика активира
статистика шоу-легенди
статистика опресняване 5s
статистика uri / stats
статистика сфера Haproxy \ Статистика
статистика auth kbuzdar: kbuzdar         # Вход за потребител и парола за наблюдение
статистика admin, ако TRUE
default_backend уеб-бекенд
Горната конфигурация позволява HAproxy -статистикаâ € страница с помощта на статистика директива и я обезпечава с http основно удостоверяване с помощта на потребителското име и паролата, дефинирани от статистика авт директива.
След като приключите с конфигурациите, запазете и затворете хапрокси.cfg файл.
Сега проверете конфигурационния файл, като използвате командата по-долу в терминала:
$ haproxy -c -f / etc / haproxy / haproxy.cfgСледващият изход показва, че конфигурациите са правилни.
Сега, за да приложите конфигурациите, рестартирайте услугата HAproxy:
$ sudo systemctl рестартирайте хапрокси.обслужванеТой ще спре и след това ще стартира услугата HAproxy.
За да проверите състоянието на услугата HAproxy, командата ще бъде:
$ sudo systemctl статус хапрокси.обслужванеThe активен (работи) статус в следващия изход показва, че HAproxy сървърът е активиран и работи добре.
Ето някои други команди за управление на HAproxy сървъра:
За да стартирате HAproxy сървъра, командата ще бъде:
$ sudo systemctl стартира хапрокси.обслужванеЗа да спрете HAproxy сървъра, командата ще бъде:
$ sudo systemctl спре хапрокси.обслужванеВ случай, че искате временно да деактивирате HAproxy сървъра, командата ще бъде:
$ sudo systemctl деактивира хапрокси.обслужванеЗа да активирате отново HAproxy сървъра, командата ще бъде:
$ sudo systemctl активира хапрокси.обслужванеТествайте HAproxy
Преди да тествате настройката на HAproxy, уверете се, че имате връзка с уеб сървъри. От вашия HAproxy сървър пинг и двата уеб сървъра или чрез техните IP адреси или имена на хостове.
$ ping име на хост-или-ip-адресСледващият изход показва, че HAproxy сървърът може да достигне и двата уеб сървъра.
Тествайте HA прокси с помощта на уеб браузър
Сега във вашия HAproxy сървър отворете всеки уеб браузър и напишете http: // последван от IP адреса на HAproxy сървъра, който в нашия случай е 192.168.72.157.
http: // 192.168.72.157Сървърът HAproxy алтернативно ще изпрати заявката до двата уеб сървъра по кръгъл метод. Можете да тествате това, като презаредите уеб страницата няколко пъти.
Това е отговорът, който получихме, когато посетихме http: // 192.168.72.157 за първи път:
Това е отговорът, който получихме, когато презаредихме уеб страницата:
Можете също да използвате името на хоста вместо IP адреса на HAproxy сървъра.
Тествайте HA прокси, като използвате curl
Можете също да използвате командата curl в Linux, за да тествате настройката на HAproxy. Отворете терминала и напишете къдрица последвано от IP адреса или името на хоста на HAproxy сървъра.
$ curl 192.168.72.157или
$ curl HAproxyИзпълнете командата curl няколко пъти и ще видите как реакцията се редува между двата уеб сървъра.
Вместо да изпълнявате командите няколко пъти, можете също да изпълните следния едноредов скрипт, за да тествате HAproxy сървъра:
$ докато е вярно; правя къдрици 192.168.72.157; сън 1; Свършен
Тестване на мониторинг на HAproxy
За достъп до страницата за наблюдение на HAproxy напишете http: // последвано от IP адреса / името на хоста на HAproxy сървър и порт 8080 / статистика:
http: // 192.168.72.157: 8080 / статистикаили
http: // HAproxy: 8080 / statsЩе се появи следното поле за удостоверяване. Въведете потребителското име и парола сте конфигурирали по-рано в конфигурациите и след това натиснете Добре.
Това е статистическият отчет за нашия HAproxy сървър.
Там имате инсталация и конфигурация на HAproxy балансьор на натоварването в системата Linux. Току-що обсъдихме основната настройка и конфигурация на HAproxy като балансиращ товар за уеб сървъри на Apache. Разгледахме и някои команди за управление на HAproxy сървъра. В крайна сметка тествахме балансирането на натоварването чрез браузъра и командата curl. За повече информация посетете официалната документация на HAproxy