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 адресите на двата уеб сървъра, както е показано
$ защото / и т.н / домакини
3.19.229.234 server_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.
# cd / и т.н / хапроксиНай-добрите практики изискват да архивираме всеки конфигурационен файл, преди да направим каквито и да е модификации. Така че архивирайте haproxy.cfg файл, като го преименувате.
# мв haproxy.cfg haproxy.cfg.bakСлед това продължете и отворете конфигурационния файл
защото haproxy.cfgУверете се, че сте направили модификацията, както е показано
#------------------------------------------------ --------------------# Глобални настройки
#------------------------------------------------ --------------------
глобален
лог 127.0.0.1 local2 #Конфигурация на регистрационния файл
chroot / беше / либ / хапрокси
pidfile / беше / тичам / haproxy.pid
maxconn 4000
потребител haproxy #Haproxy, работещ под потребител и група 'haproxy'
група хаппрокси
демон
# включете stats unix socket
гнездо за статистика / беше / либ / хапрокси / статистика
#------------------------------------------------ --------------------
# общи настройки по подразбиране, които всички секции „слушане“ и „бекенд“ ще направят
# използвайте, ако не е посочено в техния блок
#------------------------------------------------ --------------------
по подразбиране
режим http
лог глобален
опция httplog
опция dontlognull
опция http-server-close
опция напред за с изключение на 127.0.0.0 / 8
опция повторно изпращане
повторни опити 3
изчакване http-заявка 10s
опашка за изчакване 1m
изчакване за свързване 10s
таймаут клиент 1м
таймаут сървър 1м
изчакване http-keep-alive 10s
проверка на изчакване 10s
maxconn 3000
#------------------------------------------------ --------------------
Конфигурация за наблюдение #HAProxy
#------------------------------------------------ --------------------
слушайте haproxy3-мониторинг * : 8080 #Haproxy мониторинг се изпълнява на порт 8080
режим http
опция forwardfor
опция httpclose
статистика активирайте
статистика шоу-легенди
статистика опресняване 5s
stats uri / статистика #URL за наблюдение на HAProxy
stats realm Haproxy\ Статистика
stats auth Парола123: Парола123 #Потребител и парола за влизане в таблото за наблюдение
статистика администратор ако ВЯРНО
default_backend app-main #Това е по избор за наблюдение на бекенда
#------------------------------------------------ --------------------
# FrontEnd конфигурация
#------------------------------------------------ --------------------
главен интерфейс
обвързвам * : 80
опция http-server-close
опция forwardfor
default_backend app-main
#------------------------------------------------ --------------------
# BackEnd round robin като алгоритъм за баланс
#------------------------------------------------ --------------------
backend app-main
баланс кръгов #Алгоритъм за баланс
опция httpchk HEAD / HTTP / 1.1 \r\nХост:\ локален хост
#Проверете дали сървърното приложение работи и е изправно - 200 код за състояние
сървър server_01 3.19.229.234: 80 проверка #Nginx1
сървър server_02 3.17.9.217: 80 проверка #Nginx2
Не забравяйте да промените името на хоста и IP адресите на уеб сървърите, както е посочено в последните два реда. Запазете промените и излезте.
Следващата стъпка ще бъде да конфигурирате Rsyslog, за да можете да регистрирате статистика на HAProxy.
# защото / и т.н / rsyslog.confУверете се, че сте разкоментирали редовете по-долу, за да позволите UDP връзки
$ModLoad imudp$UDPServerRun 514
След това продължете и създайте нов конфигурационен файл haproxy.conf
# защото / и т.н / rsyslog.d / haproxy.confПоставете следните редове, запазете и излезте
local2.=информация / беше / дневник / haproxy-access.log #За регистър на достъпаlocal2.notice / беше / дневник / haproxy-info.log #За информация за услугата - Backend, loadbalancer
За да влязат в сила промените, рестартирайте демона rsyslog, както е показано:
# systemctl рестартирайте rsyslogСлед това стартирайте и активирайте HAProxy
# systemctl стартира rsyslog# systemctl активира rsyslog
Проверете дали HAProxy работи
# systemctl състояние rsyslogСтъпка 3: Инсталирайте и конфигурирайте Nginx
Сега остава само инсталирането на Nginx. Влезте във всеки от сървърите и първо актуализирайте системните пакети:
# yum актуализацияСледваща инсталация EPEL (Допълнителни пакети за Enterprise Linux)
# yum инсталирайте топло освобождаванеЗа да инсталирате Nginx, изпълнете командата:
# yum инсталирайте nginxСлед това стартирайте и активирайте Nginx
# systemctl стартира nginx# systemctl активира nginx
След това ще модифицираме файла index.html и в двата случая, за да демонстрираме или симулираме как инструментът за балансиране на натоварването може да разпределя уеб трафика между двата сървъра.
За server_01
# ехо 'server_01. Хей! Добре дошли в първия уеб сървър' > index.htmlЗа server_02
# ехо 'server_02. Хей! Добре дошли във втория уеб сървър' > index.htmlЗа да влязат в сила промените, рестартирайте Nginx
# systemctl рестартирайте nginxСтъпка 4: Тестване дали балансиращото натоварване работи
Най-накрая сме в точката, в която искаме да видим дали конфигурацията работи. Така че влезте в балансиращото натоварване и изпълнете командата curl многократно
# къдрица 3.17.12.132Трябва да получите променлив изход на терминала, показващ стойността на index.html от server_01 и server_02
Сега нека тестваме с помощта на уеб браузър. Прегледайте IP адреса на вашия балансьор на натоварването
http: // load-balancer-IP-адресПървата страница ще показва съдържание от който и да е уеб сървър
Сега опреснете уеб страницата и проверете дали показва съдържание от другия уеб сървър
Перфектно! Балансът на натоварването разпределя IP трафика по равно между двата уеб сървъра!
Това завършва този урок за това как можете да инсталирате, както и да конфигурирате HAProxy на CentOS 8. Вашите отзиви ще бъдат много оценени.