Балансировка нагрузки — наиболее распространенная практика распределения входящего веб-трафика между несколькими внутренними серверами. Это делает приложение высокодоступным, даже если по какой-то причине некоторые серверы выходят из строя. Балансировка нагрузки увеличивает эффективность и надежность веб-приложения. Балансировщик нагрузки HAProxy используется с той же целью. Это наиболее широко используемый в промышленности балансировщик нагрузки. Согласно официальному сайту, HAProxy используется ведущими компаниями, такими как AWS, Fedora, Github и многими другими.
HAProxy или High Availability Proxy обеспечивает высокую доступность и решение для прокси. Он написан на C и работает на сетевом и прикладном уровнях модели TCP/IP. Лучше всего то, что у него есть бесплатная версия сообщества, и это приложение с открытым исходным кодом. Он работает в операционных системах Linux, FreeBSD и Solaris. Корпоративная версия тоже есть, но имеет свою цену.
В этой статье мы увидим, как установить HAProxy и настроить сервер балансировки нагрузки в Debian 10.
В этой статье мы предположим следующую конфигурацию IP-адреса:
Сначала выполните приведенные ниже команды на всех системах, чтобы обновить пакеты программного обеспечения до последней версии.
$ sudo apt update $ sudo apt upgrade -y
Подготовьте свои внутренние серверы, установив веб-сервер Nginx на каждом. Вы также можете установить другие веб-серверы, такие как apache.
Чтобы установить Nginx, выполните следующие команды на каждом внутреннем сервере в вашей среде:
$ sudo apt install nginx
$ sudo systemctl start nginx
СОВЕТ : Мы также можем управлять веб-сервером nginx, используя следующую команду:
$ sudo /etc/init.d/nginx “option” option: start reload restart status stop
На каждом веб-сервере выполните следующие задачи:
Сделайте резервную копию исходного индексного файла с помощью следующей команды:
$ sudo cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
Добавьте собственный текст в файл index.html. Мы добавляем IP-адрес каждого веб-сервера.
Для веб-сервера 1:
$ sudo echo "Web server 1: 10.0.12.15" | sudo tee /usr/share/nginx/html/index.html
Для веб-сервера 2:
$ sudo echo "Web server 2: 10.0.12.16" | sudo tee /usr/share/nginx/html/index.html
Вы также можете использовать редактор Vim, если вам это удобнее. Это показано ниже:
$ sudo vi /usr/share/nginx/html/index.html
Когда файл откроется, введите текст и сохраните файл.
Откройте файл виртуального хоста по умолчанию в каталоге “/etc/nginx/sites-available/”.
$ sudo nano /etc/nginx/sites-available/default
Теперь внутри блока сервера измените корневую директиву с “/var/www/html” на “/usr/share/nginx/html”.
Чтобы проверить конфигурацию Nginx, выполните следующую команду:
$ sudo nginx -t
$ sudo systemctl restart nginx
Вы можете проверить статус nginx, используя следующую команду:
$ sudo systemctl status nginx
$ sudo apt install haproxy -y
Совет: после установки HAProxy вы можете управлять HAProxy с помощью сценария инициализации. Для этого установите для параметра «enabled» значение 1 в “/etc/default/haproxy”, как показано ниже:
$ sudo vi /etc/default/haproxy ENABLED=1
Теперь со сценарием инициализации можно использовать следующую опцию:
$ sudo service haproxy “option.” option: start reload restart status stop
$ sudo vi /etc/haproxy/haproxy.cfg
Совет: сделайте резервную копию исходного файла, чтобы мы были в безопасности, если что-то пойдет не так. Чтобы выполнить резервное копирование, используйте следующую команду:
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.orig
Теперь перейдите в конец файла и отредактируйте следующую информацию:
frontend Local_Server bind 10.0.12.10:80 mode http default_backend webserver backend webserver mode http balance roundrobin option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } option httpchk HEAD / HTTP/1.1rnHost:localhost server web1 10.0.12.15:80 server web2 10.0.12.16:80
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Если все пойдет правильно, появится такой вывод: “Configuration file is valid.”. Если вы получите какую-либо ошибку в выводе, перепроверьте файл конфигурации и проверьте его еще раз.
$ sudo service haproxy restart
Теперь пора проверить, правильно ли работает наша установка. Введите IP-адрес системы балансировки нагрузки в веб-браузере (в нашем случае это 10.0.12.10) и постоянно обновляйте страницу 2–4 раза, чтобы убедиться, что балансировщик нагрузки HAProxy работает правильно. Вы должны увидеть разные IP-адреса или любой текст, который вы ввели в файл index.html, когда продолжите обновлять страницу несколько раз.
Другой способ проверки — отключить один веб-сервер и проверить, обслуживает ли другой веб-сервер запросы.
На этом пока все! Попробуйте поэкспериментировать с HAProxy, чтобы узнать больше о том, как он работает. Например, вы можете попробовать:
HAProxy имеет обширную документацию, доступную как для версии сообщества HAProxy, так и для версии HAProxy для предприятий . Изучите эту документацию, чтобы получить больше информации о повышении производительности и надежности вашей серверной среды.
Это руководство было успешно выполнено в Debian 10 (Buster). Попробуйте установить HAProxy на другие дистрибутивы на основе Debian, такие как Ubuntu, Linux Mint и т. д. Пожалуйста, не забудьте поделиться этим руководством с другими.