УстанавливаСм балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy Π½Π° CentOS

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π² ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта курса «Администратор Linux. Виртуализация ΠΈ кластСризация»

УстанавливаСм балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy Π½Π° CentOS

Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ β€” это распространСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ нСскольким хостам с прСдоставлСниСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа ΠΊ сСрвису. HAProxy являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ проксирования.

HAProxy стрСмится ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС рСсурсов, ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятого рСсурса. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСна Π½Π° мноТСствС дистрибутивов Linux, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CentOS 8, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ остановимся Π² этом руководствС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² систСмах Debian 8 ΠΈ Ubuntu 16.

УстанавливаСм балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy Π½Π° CentOS

HAProxy особСнно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π²Π΅Π±-сайтов с ΠΎΡ‡Π΅Π½ΡŒ высоким Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ ΠΈ поэтому часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ надСТности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π²Π΅Π±-слуТб с нСсколькими сСрвСрами. Π’ этом руководствС ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ шаги ΠΏΠΎ настройкС HAProxy Π² качСствС балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ хостС CentOS 8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ направляСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ваши Π²Π΅Π±-сСрвСры.

Π’ качСствС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ условия для достиТСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° Π²Π΅Π±-сСрвСра ΠΈ сСрвСр для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. На Π²Π΅Π±-сСрвСрах Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° хотя Π±Ρ‹ базовая Π²Π΅Π±-слуТба, такая ΠΊΠ°ΠΊ nginx ΠΈΠ»ΠΈ httpd, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Установка HAProxy Π½Π° CentOS 8

Π’ силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ HAProxy β€” быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, дистрибутив, доступный Π²Π°ΠΌ Π² стандартных рСпозиториях CentOS, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ самой послСднСй вСрсиСй. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

sudo yum info haproxy

HAProxy всСгда прСдоставляСт Π½Π° Π²Ρ‹Π±ΠΎΡ€ Ρ‚Ρ€ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ вСрсии: Π΄Π²Π΅ самыС послСдниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ, Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ, которая всС Π΅Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ критичСскиС обновлСния. Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π½Π° сайтС HAProxy, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, с ΠΊΠ°ΠΊΠΎΠΉ вСрсиСй Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’ этом руководствС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ 2.0, которая Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° доступна Π² стандартных рСпозиториях Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания руководства. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈΠ· пСрвоисточника. Но сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π»ΠΈ Ρƒ вас Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ условия для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

sudo yum install gcc pcre-devel tar make -y

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ исходный ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½ΠΈΠΆΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ новая вСрсия, доступная Π½Π° страницС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ распакуйтС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

tar xzvf ~/haproxy.tar.gz -C ~/

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² распакованный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с исходниками:

cd ~/haproxy-2.0.7

Π—Π°Ρ‚Π΅ΠΌ скомпилируйтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π²Π°ΡˆΡƒ систСму:

make TARGET=linux-glibc

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, установитС саму HAProxy:

sudo make install

Π’Π΅ΠΏΠ΅Ρ€ΡŒ HAProxy установлСна, Π½ΠΎ для Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ манипуляции. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ настройку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ сСрвисов Π½ΠΈΠΆΠ΅.

Настройка HAProxy ΠΏΠΎΠ΄ ваш сСрвСр

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ Ρ„Π°ΠΉΠ» статистики для записСй HAProxy:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ссылку для Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ HAProxy ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ прокси-сСрвСр Π² систСму Π² качСствС слуТбы, скопируйтС Ρ„Π°ΠΉΠ» haproxy.init ΠΈΠ· examples Π² свой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc/init.d. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт выполнялся, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΄Π΅ΠΌΠΎΠ½ systemd:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ слуТбС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΡ€ΠΈ запускС систСмы:

sudo chkconfig haproxy on

Π’ цСлях удобства Ρ‚Π°ΠΊΠΆΠ΅ рСкомСндуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для запуска HAProxy:

sudo useradd -r haproxy

ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ установлСнной вСрсии с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

Π’ нашСм случаС вСрсия Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 2.0.7, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅.

НаконСц, Ρ„Π°ΠΉΡ€Π²ΠΎΠ» Π² CentOS 8 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ довольно рСстриктивСн для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ слуТбы ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Настройка балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

Настройка HAProxy β€” довольно простой процСсс. По сути, всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ HAProxy, ΠΊΠ°ΠΊΠΈΠ΅ соСдинСния ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΡƒΠ΄Π° слСдуСт ΠΈΡ… Ρ€Π΅Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎ дСлаСтся ΠΏΡƒΡ‚Π΅ΠΌ создания Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ /etc/haproxy/haproxy.cfg с ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ настройками. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ HAProxy Π½Π° страницС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этом большС.

Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° транспортном ΡƒΡ€ΠΎΠ²Π½Π΅ (layer 4)

НачнСм с Π±Π°Π·ΠΎΠ²ΠΎΠΉ настройки. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ vi с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅:

sudo vi /etc/haproxy/haproxy.cfg

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ server_name Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ваши сСрвСра Π½Π° страницС статистики, Π° private_ip β€” ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ IP-адрСсами сСрвСров, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Π΅Π±-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ IP-адрСса Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния UpCloud ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Private network Π² мСню Network.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

Π­Ρ‚ΠΎ опрСдСляСт балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ транспортного уровня (layer 4) с внСшним ΠΈΠΌΠ΅Π½Π΅ΠΌ http_front, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 80, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ направляСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΊ бэкСнду ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ http_back. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ статистика /haproxy?stats ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ страницу статистики ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу.

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ сСрвСров Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ бэкСнда позволяСт HAProxy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти сСрвСры для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² соотвСтствии с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ цикличСского ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Алгоритмы балансировки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ сСрвСр Π² бэкСндС пСрСдаСтся ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ соСдинСниС. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ:

  • Roundrobin: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² соотвСтствии со своим вСсом. Π­Ρ‚ΠΎ самый ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΈ чСстный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΠ³Π΄Π° врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСрвСрами остаСтся Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСнным. Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся динамичСским, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСс сСрвСра Π½Π° Π»Π΅Ρ‚Ρƒ.
  • Leastconn: выбираСтся сСрвСр с наимСньшим количСством соСдинСний. ЦикличСский ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ выполняСтся ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. ИспользованиС этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° рСкомСндуСтся для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… сСансов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ LDAP, SQL, TSE ΠΈ Ρ‚. Π΄., Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сСансов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ HTTP.
  • First: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСрвСр с доступными слотами для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ соСдинСниС. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ числового ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π΄ΠΎ самого высокого, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ соотвСтствуСт полоТСнию сСрвСра Π² Ρ„Π΅Ρ€ΠΌΠ΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСрвСр достигаСт значСния maxconn, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сСрвСр.
  • Source: IP-адрСс источника Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΈ дСлится Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ вСс Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… сСрвСров, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ запрос. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ IP-адрСс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ всСгда Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ сСрвСру, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ сСрвСры ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Настройка балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ (layer 7)

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° доступная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ (layer 7), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° части вашСго Π²Π΅Π±-прилоТСния располоТСны Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… хостах. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто ΠΏΡƒΡ‚Π΅ΠΌ рСгулирования ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ соСдинСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ URL.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ HAProxy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°:

sudo vi /etc/haproxy/haproxy.cfg

Π—Π°Ρ‚Π΅ΠΌ настройтС сСгмСнты Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΈ бэкСнд Π² соотвСтствии с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π½ΠΈΠΆΠ΅:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ACL с ΠΈΠΌΠ΅Π½Π΅ΠΌ url_blog, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ примСняСтся ΠΊΠΎ всСм соСдинСниям с путями, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ с /blog. Use_backend опрСдСляСт, Ρ‡Ρ‚ΠΎ соСдинСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ url_blog, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ бэкСндом с ΠΈΠΌΠ΅Π½Π΅ΠΌ blog_back, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ запросы ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ бэкСндом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π‘ΠΎ стороны бэкСнда конфигурация устанавливаСт Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ сСрвСров: http_back, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΈ Π½ΠΎΠ²ΡƒΡŽ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ blog_back, которая обслуТиваСт соСдинСния с example.com/blog.

ПослС измСнСния настроСк сохранитС Ρ„Π°ΠΉΠ» ΠΈ пСрСзапуститС HAProxy с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

sudo systemctl restart haproxy

Если ΠΏΡ€ΠΈ запускС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ прСдупрСТдСния ΠΈΠ»ΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π½Π° ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ снова ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

ВСстированиС настройки

Когда HAProxy настроСн ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ IP-адрСс сСрвСра балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ бэкСнду. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ stats uri Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ создаСт страницу статистики ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу.

http://load_balancer_public_ip/haproxy?stats

Когда Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ страницу статистики, Ссли всС ваши сСрвСры ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ, Ρ‚ΠΎ настройка ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ!

УстанавливаСм балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy Π½Π° CentOS

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° статистики содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для отслСТивания Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-хостов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹/простоя ΠΈ количСство сСансов. Если сСрвСр ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ красным, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сСрвСр Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΌΠ°ΡˆΠΈΠ½Ρ‹ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Если ваш балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ HTTP-соСдинСния Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ HAProxy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½ΠΈΠΆΠ΅:

sudo systemctl status haproxy

Π—Π°Ρ‰ΠΈΡ‚Π° страницы статистики с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пароля

Однако, Ссли страница статистики просто ΡƒΠΊΠ°Π·Π°Π½Π° Π²ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅, Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° для всСобщСго обозрСния, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅ΠΉ собствСнный Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Π΅Ρ† вашСго Ρ„Π°ΠΉΠ»Π° haproxy.cfg. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ username ΠΈ password Π½Π° Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ бСзопасноС:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

ПослС добавлСния Π½ΠΎΠ²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ ссылку Π½Π° stats uri ΠΈΠ· Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Π³Ρ€ΡƒΠΏΠΏΡ‹. Когда Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅, сохранитС Ρ„Π°ΠΉΠ» ΠΈ пСрСзапуститС HAProxy.

sudo systemctl restart haproxy

Π—Π°Ρ‚Π΅ΠΌ снова ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с Π½ΠΎΠ²Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Π° ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

http://load_balancer_public_ip:8181

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ваши сСрвСры ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ IP балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

http://load_balancer_public_ip/

Если Π½Π° Π²Π°ΡˆΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСрвСрах Π΅ΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… страниц, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ страницу, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ хоста. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ балансировки Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ с ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ настройкой балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy! Π”Π°ΠΆΠ΅ с Π±Π°Π·ΠΎΠ²ΠΎΠΉ настройкой балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ вашСго Π²Π΅Π±-прилоТСния. Π­Ρ‚ΠΎ руководство являСтся лишь Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HAProxy, которая способна Π½Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСС, Ρ‡Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ инструкции ΠΏΠΎ настройкС. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ конфигурациями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, доступной для HAProxy, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для вашСй производствСнной срСды.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ нСсколько хостов для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ вашСго Π²Π΅Π±-сСрвиса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ запаса мощности, сам балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚ΠΊΠ°Π·Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Ρ‰Π΅ большС ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, установив ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉ IP ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими балансировщиками Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± этом Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ… IP-адрСсах Π½Π° UpCloud.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ курсС «Администратор Linux. Виртуализация ΠΈ кластСризация»***

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com