HaProxy се използва от популярни сайтове като Tumblr, GitHub и StackOverflow. В това ръководство ще ви преведем през инсталацията на HAProxy в настройка на уеб сървъри, които се захранват с помощта на Nginx.
Лабораторна настройка
3 екземпляра на сървъри CentOS 7, както е показано
IP адреси на име на хостload_balancer 3.17.12.132
сървър_01 3.19.229.234
сървър_02 3.17.9.217
Стъпка 1: Редактирайте файла / etc / hosts за балансиращия товар
За да започнете, влезте в системата за балансиране на товара и модифицирайте файла / etc / hosts, за да включите имената на хостове и IP адресите на двата уеб сървъра, както е показано
$ vim / etc / hosts3.19.229.234 сървър_01
3.17.9.217 сървър-02
След като приключите, запазете промените и излезте от конфигурационния файл.
Сега се насочете към всеки от уеб сървърите и актуализирайте / etc / hosts файл с IP адрес и име на хост на балансиращия товар
3.17.12.132 балансиращ товарСлед това потвърдете, че можете да ping балансира на товара от server_01
И по същия начин от server_02
Също така, уверете се, че можете да пингвате сървърите от балансиращия товар.
Перфектно ! всички сървъри могат да комуникират с балансиращия товар!
Стъпка 2: Инсталирайте и конфигурирайте HA прокси на балансиращия товар
Тъй като HA Proxy е лесно достъпен от официалното хранилище на CentOS, ще го инсталираме с помощта на yum или dnf мениджъра на пакети.
Но както винаги, първо актуализирайте системата
# yum актуализацияСлед това инсталирайте HA прокси, както е показано
# yum инсталирайте haproxy
След успешна инсталация отидете до директорията haproxy.
# cd / etc / haproxyНай-добрата практика изисква да архивираме всеки конфигурационен файл, преди да правим каквито и да било промени. Така че архивирайте хапрокси.cfg файл, като го преименувате.
# mv хапрокси.cfg хапрокси.cfg.бакСлед това продължете и отворете конфигурационния файл
vim хапрокси.cfgУверете се, че сте направили модификацията, както е показано
#---------------------------------------------------------------------# Глобални настройки
#---------------------------------------------------------------------
глобален
дневник 127.0.0.1 локален2 # Конфигурация на регистрацията
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
потребител haproxy #Haproxy работи под потребител и група "haproxy"
група хапрокси
демон
# включете статистика unix сокет
stats socket / var / lib / haproxy / stats
#---------------------------------------------------------------------
# често срещани настройки по подразбиране, които всички раздели „слушане“ и „бекенд“ ще имат
# използвайте, ако не е посочено в техния блок
#---------------------------------------------------------------------
по подразбиране
режим http
лог глобален
опция httplog
опция dontlognull
опция http-server-close
опция напред за освен 127.0.0.0/8
опция препращане
повторни опити 3
изчакване http-заявка 10s
опашка за изчакване 1м
изчакване свързване 10s
клиент за изчакване 1м
сървър за изчакване 1м
изчакване http-keep-alive 10s
проверка за изчакване 10 секунди
maxconn 3000
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
слушайте haproxy3-monitoring *: 8080 #Haproxy Monitoring стартира на порт 8080
режим http
опция напред за
опция httpclose
статистика активира
статистика шоу-легенди
статистика опресняване 5s
stats uri / stats #URL за мониторинг на HAProxy
статистика сфера Haproxy \ Статистика
статистика auth Password123: Password123 # Потребител и парола за влизане в таблото за наблюдение
статистика admin, ако TRUE
default_backend app-main # Това е по избор за наблюдение на бекенда
#---------------------------------------------------------------------
# FrontEnd конфигурация
#---------------------------------------------------------------------
главен интерфейс
свързване *: 80
опция http-server-close
опция напред за
default_backend app-main
#---------------------------------------------------------------------
# BackEnd обиколка като алгоритъм на баланса
#---------------------------------------------------------------------
backend app-main
баланс Roundrobin #Balance алгоритъм
опция httpchk HEAD / HTTP / 1.1 \ r \ nХост: \ localhost
# Проверете дали сървърното приложение е изправено и здраво - 200 код на състоянието
сървър сървър_01 3.19.229.234: 80 проверка # Nginx1
сървър сървър_02 3.17.9.217: 80 проверка # Nginx2
Не забравяйте да промените името на хоста и IP адресите на уеб сървърите, както е посочено в последните два реда. Запазете промените и излезте.
Следващата стъпка ще бъде да конфигурирате Rsyslog, за да може да регистрира HAProxy статистика.
# vim / etc / rsyslog.конфУверете се, че коментирате редовете по-долу, за да разрешите UDP връзки
$ ModLoad imudp$ UDPServerRun 514
След това продължете и създайте нов конфигурационен файл хапрокси.конф
# vim / etc / rsyslog.г / хапрокси.конфПоставете следните редове, запазете и излезте
местно2.= info / var / log / haproxy-access.log #For Log за достъпместно2.известие / var / log / haproxy-info.log #For Service Info - Backend, loadbalancer
За да влязат в сила промените, рестартирайте демона rsyslog, както е показано:
# systemctl рестартирайте rsyslogСлед това стартирайте и активирайте HAProxy
# systemctl стартира rsyslog# systemctl разреши rsyslog
Проверете дали HAProxy работи
# systemctl статус rsyslog
Стъпка 3: Инсталирайте и конфигурирайте Nginx
Сега остава само инсталирането на Nginx. Влезте във всеки от сървърите и първо актуализирайте системните пакети:
# yum актуализацияСледваща инсталация на EPEL (допълнителни пакети за корпоративен Linux)
# yum инсталирайте epel-releaseЗа да инсталирате Nginx, изпълнете командата:
# yum инсталирайте nginxСлед това стартирайте и активирайте Nginx
# systemctl стартира nginx# systemctl активира nginx
След това ще модифицираме индекса.html файл и в двата случая, за да демонстрира или симулира как балансьорът на товара е в състояние да разпределя уеб трафика през двата сървъра.
За сървър_01
# ехо "сървър_01. Хей ! Добре дошли в първия уеб сървър "> индекс.htmlЗа сървър_02
# ехо "сървър_02. Хей ! Добре дошли във втория уеб сървър "> индекс.htmlЗа да бъдат извършени промените, рестартирайте Nginx
# systemctl рестартирайте nginxСтъпка 4: Тестване дали балансиращият товара работи
Най-накрая сме на мястото, където искаме да видим дали конфигурацията работи. Затова влезте в балансьора на товара и изпълнете командата curl неколкократно
# къдряне 3.17.12.132Трябва да получите променлив изход на терминала, показващ стойността на индекса.html от server_01 и server_02
Сега нека тестваме с помощта на уеб браузър. Прегледайте IP адреса на балансиращия товар
http: // load-balancer-IP-адресПървата страница ще показва съдържание от който и да е от уеб сървърите
Сега опреснете уеб страницата и проверете дали тя показва съдържание от другия уеб сървър
Перфектно ! Балансът на натоварването разпределя равномерно IP трафика между двата уеб сървъра !
Това завършва този урок за това как можете да инсталирате, както и да конфигурирате HAProxy на CentOS 8. Вашите отзиви ще бъдат много оценени.