Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Как установить балансировщик нагрузки на сервер Linux — руководство для экспертов 2026 года

Для установки балансировщика нагрузки на сервере Linuxвыберите программный балансировщик (HAProxy или Nginx), установите через пакет вашего дистрибутива. manager, настройте пулы фронтенда и бэкенда с проверками работоспособности и SSLОткройте порты брандмауэра 80/443, затем проверьте отказоустойчивость. Для обеспечения высокой доступности добавьте второй узел и виртуальный IP-адрес с помощью Keepalived.

В этом пошаговом руководстве вы узнаете, как установить балансировщик нагрузки на Linux-сервер с использованием HAProxy. Nginxнастройте проверки работоспособности и SSL Завершение работы, развертывание высокой доступности с помощью Keepalived, усиление безопасности, мониторинг производительности и избегание распространенных ошибок. Инструкции понятны новичкам, но при этом технически точны и основаны на реальном опыте хостинга.

Что такое балансировщик нагрузки (и почему это важно)?

Что такое балансировщик нагрузки (и почему это важно)?

Балансировщик нагрузки распределяет входящий трафик между несколькими серверами приложений для повышения надежности, скорости и масштабируемости. В Linux популярными вариантами с открытым исходным кодом являются HAProxy (высокопроизводительный прокси-сервер уровня L4/L7) и Nginx (веб-сервер и обратный прокси L7). Вы можете балансировать HTTP/HTTPS (уровень 7) или чистый TCP (уровень 4), добавлять проверки работоспособности, сохранение сессий и т. д. SSL разгрузка.

Кому следует использовать это руководство

Это руководство предназначено для разработчиков, системных администраторов и владельцев сайтов, которые хотят настроить балансировщик нагрузки Linux перед веб-приложениями, API, WordPress или микросервисами. Предполагается наличие базовых знаний командной строки Linux и доступа с правами суперпользователя (sudo).

Параметры балансировки нагрузки в Linux

Выбор подходящего инструмента зависит от профиля вашего трафика, функциональных возможностей и операционных предпочтений.

  • HAProxy (рекомендуется): Отличная производительность, расширенные проверки работоспособности, устойчивость к изменениям, расширенная маршрутизация, TLS, наблюдаемость.
  • Nginx (с открытым исходным кодом): Отлично подходит в качестве обратного прокси/балансировщика L7, простая настройка, мощная экосистема; пассивные проверки работоспособности работают сразу после установки.
  • IPVS/LVS (через keepalived): Балансировка нагрузки на уровне ядра (Layer 4) для очень высокой пропускной способности; меньше функций уровня 7 (Layer 7).

Для большинства веб-нагрузок начните с HAProxy или NginxЕсли вам нужны миллионы одновременных подключений с минимальными накладными расходами и простой логикой уровня L4, рассмотрите LVS/IPVS.

Предпосылки

  • Сервер Linux: Ubuntu 22.04/24.04 или RHEL/AlmaLinux/Rocky 8/9.
  • Права доступа root/sudo и базовые знания работы с сетями.
  • Для балансировки трафика потребуется как минимум два серверных приложения.
  • DNS запись, указывающая на публичный IP-адрес вашего балансировщика нагрузки (или плавающий/виртуальный IP-адрес в конфигурациях высокой доступности).
  • Доступ брандмауэра к открытым портам 80/443 (и 8404/9000 для статистики, опционально).

Быстрое решение: HAProxy против Nginx

  • Выбирайте HAProxy, если вам нужны расширенные проверки состояния системы, подробные метрики, таблицы сравнения или ресурсоемкие приложения. SSL/TLS offload.
  • Выбирать Nginx Если вы предпочитаете привычный стек веб-сервера и прокси или уже используете его для статического контента и кэширования.

Установите HAProxy в Ubuntu/Debian.

Используйте команду `pt` для установки, затем настройте интерфейсы/бэкенд, проверки работоспособности и, при необходимости, другие параметры. SSL прекращение.

sudo apt update
sudo apt install -y haproxy
# Enable HAProxy at boot
sudo systemctl enable haproxy
# Verify version
haproxy -v

Базовая балансировка нагрузки HTTP с использованием алгоритма циклического распределения и проверок работоспособности:

# /etc/haproxy/haproxy.cfg
global
  log /dev/log local0
  log /dev/log local1 notice
  maxconn 50000
  user haproxy
  group haproxy
  daemon

defaults
  log     global
  mode    http
  option  httplog
  option  dontlognull
  timeout connect 5s
  timeout client  50s
  timeout server  50s
  option  http-server-close
  option  redispatch
  retries 3

frontend fe_http
  bind *:80
  mode http
  option forwardfor
  default_backend be_app

backend be_app
  mode http
  balance roundrobin
  option httpchk GET /health
  http-check expect status 200
  server app1 10.0.0.11:80 check
  server app2 10.0.0.12:80 check

listen stats
  bind *:8404
  mode http
  stats enable
  stats uri /stats
  stats refresh 10s
sudo haproxy -c -f /etc/haproxy/haproxy.cfg   # syntax check
sudo systemctl restart haproxy
sudo systemctl status haproxy --no-pager

Добавить HTTPS (SSL завершение) с помощью Let's Encrypt или вашего собственного пакета сертификатов:

# Concatenate fullchain + private key into a single PEM (PEM must include key)
sudo mkdir -p /etc/haproxy/certs
sudo cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem | sudo tee /etc/haproxy/certs/example.com.pem > /dev/null
sudo chmod 600 /etc/haproxy/certs/example.com.pem

# Update haproxy.cfg to add HTTPS frontend
frontend fe_https
  bind *:443 ssl crt /etc/haproxy/certs/example.com.pem alpn h2,http/1.1
  mode http
  redirect scheme https code 301 if !{ ssl_fc }
  option forwardfor
  http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  default_backend be_app

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl reload haproxy

Дополнительно: включить сохранение состояния для приложений с сохранением состояния (например, устаревших приложений). PHP сессии):

backend be_app
  mode http
  balance roundrobin
  cookie SRV insert indirect nocache
  option httpchk GET /health
  server app1 10.0.0.11:80 check cookie s1
  server app2 10.0.0.12:80 check cookie s2

Установите HAProxy на RHEL/AlmaLinux/Rocky.

sudo dnf install -y haproxy
sudo systemctl enable haproxy
sudo systemctl start haproxy
# SELinux: allow HAProxy to make outbound connections if needed
sudo setsebool -P haproxy_connect_any 1
# Firewalld: open HTTP/HTTPS and stats
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-port=8404/tcp --permanent
sudo firewall-cmd --reload

Установите Nginx в качестве балансировщика нагрузки (Ubuntu/RHEL)

Nginx Отлично подходит для балансировки нагрузки на уровне 7 и обратного проксирования. По умолчанию использует пассивные проверки работоспособности (переключается при возникновении ошибок в вышестоящем сервере).

# Ubuntu/Debian
sudo apt update && sudo apt install -y nginx
sudo systemctl enable nginx

# RHEL family
sudo dnf install -y nginx
sudo systemctl enable --now nginx
sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload

Создайте блок для балансировки нагрузки HTTP-трафика, включающий вышестоящий и серверный потоки:

# /etc/nginx/conf.d/lb.conf
upstream app_backend {
  least_conn;
  server 10.0.0.11:80 max_fails=3 fail_timeout=30s;
  server 10.0.0.12:80 max_fails=3 fail_timeout=30s;
  keepalive 64;
}

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://app_backend;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
  }

  location = /health {
    access_log off;
    add_header Content-Type text/plain;
    return 200 "OK";
  }
}
sudo nginx -t
sudo systemctl reload nginx

Для HTTPS установите сертификаты с помощью Certbot или вашего провайдера, либо завершите TLS-соединение. Nginx и перенаправлять обычный HTTP-трафик на бэкэнды.

Высокая доступность: добавьте виртуальный IP-адрес с помощью Keepalived.

Чтобы избежать единой точки отказа, разверните два узла балансировки нагрузки (LB1 и LB2) и используйте между ними виртуальный IP-адрес (VIP) с помощью протокола VRRP (Keepalived). В случае отказа LB1, LB2 автоматически возьмет на себя управление.

# Install Keepalived
# Ubuntu/Debian
sudo apt install -y keepalived
# RHEL family
sudo dnf install -y keepalived

# Allow binding to VIP before assignment (recommended on the LB that runs HAProxy/Nginx)
echo "net.ipv4.ip_nonlocal_bind = 1" | sudo tee /etc/sysctl.d/99-nonlocalbind.conf
sudo sysctl --system

Пример конфигурации Keepalived (используйте разные приоритеты на каждом узле; более высокий приоритет имеет значение):

# /etc/keepalived/keepalived.conf (LB1 - MASTER)
vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 150
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass StrongSecret123
  }
  virtual_ipaddress {
    203.0.113.50/32 dev eth0
  }
  track_script {
    chk_haproxy
  }
}

vrrp_script chk_haproxy {
  script "pidof haproxy"
  interval 2
  weight -30
}
# /etc/keepalived/keepalived.conf (LB2 - BACKUP)
vrrp_instance VI_1 {
  state BACKUP
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass StrongSecret123
  }
  virtual_ipaddress {
    203.0.113.50/32 dev eth0
  }
  track_script {
    chk_haproxy
  }
}

vrrp_script chk_haproxy {
  script "pidof haproxy"
  interval 2
  weight -30
}
sudo systemctl enable --now keepalived
ip addr show dev eth0 | grep 203.0.113.50   # VIP should appear on MASTER
# Open VRRP (protocol 112) if your firewall filters it (most clouds allow by default)

Укажите свой DNS Записи A/AAAA сохраняются на VIP-адрес. Проверьте переключение на резервный сервер, остановив HAProxy или Keepalived на LB1; VIP-адрес должен переключиться на LB2 в течение нескольких секунд.

Повышение безопасности

  • межсетевой экран: Разрешите только порты 80/443 (и 22 с вашего IP-адреса). Ограничьте доступ к конечным точкам статистики по IP-адресу или авторизации.
  • ТЛС: Используйте современные шифры, включите HTTP/2, HSTS, OCSP stapling и автоматическое продление подписки Let's Encrypt.
  • Заголовки: Установите параметры X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Content-Security-Policy (в зависимости от возможностей вашего приложения).
  • Наименьшие привилегии: Запускайте службы от имени пользователя без прав root там, где это поддерживается; следите за обновлением пакетов.
  • SELinux/AppArmor: Продолжайте применять ограничения и устанавливайте необходимые логические значения (например, haproxy_connect_any).

Мониторинг и ведение журнала

  • HAProxy: Включите конечную точку статистики и экспортер Prometheus (haproxy_exporter). Записывайте логи в syslog, анализируйте их с помощью ELK или Loki.
  • Nginx: Журналы доступа/ошибок, а также stub_status или nginx-exporter для Prometheus.
  • Синтетические проверки: Мониторинг времени на VIP-серверах и в бэкэндах.
  • Производительность: Смотреть CPU, память, дескрипторы файлов и количество соединений.

Проверка балансировщика нагрузки

  • Базовая доступность: curl -I http://example.com или https://example.com
  • Пересылка заголовка: curl -I -H “Хост: example.com” http://VIP
  • Распространение: Временно добавьте заголовок ответа на каждом бэкэнде для идентификации серверов, затем обновите страницу.
  • Нагрузка: ab -n 1000 -c 50 https://example.com или siege -c50 -t1M https://example.com
  • Отказоустойчивость: Остановите один бэкэнд; трафик должен перенаправляться без ошибок.
# Quick troubleshooting helpers
sudo ss -ltnp | grep -E "80|443|8404"
journalctl -u haproxy -f
journalctl -u nginx -f
journalctl -u keepalived -f
curl -I http://127.0.0.1:8404/stats
nginx -t && haproxy -c -f /etc/haproxy/haproxy.cfg

Распространенные ошибки (и способы их устранения)

  • SSL несоответствие: Убедитесь, что порядок ключа и данных в HAProxy PEM корректен; перезагрузите HAProxy после обновления.
  • Проверки состояния здоровья не пройдены: Бэкенды должны предоставлять конечную точку с кодом 200 OK (например, /health). Если она публичная, защитите её внутри системы.
  • Функция «Залипание сессий» не работает: Подтвердите установку cookie, и приложение будет его учитывать; избегайте удаления cookie из кэширующих слоев.
  • Заголовки прокси: Для корректного определения URL-адресов приложений и протокола HTTPS всегда пересылайте заголовки Host и X-Forwarded-*.
  • Межсетевой экран блокирует: Откройте порты в ОС и группе безопасности облака. Протокол VRRP (протокол 112) должен передаваться между балансировщиками нагрузки.
  • Ошибки привязки VIP: Установите параметр net.ipv4.ip_nonlocal_bind=1 на узлах, которые запускают прокси-серверы до подключения виртуального IP-адреса.

Реальные сценарии

  • WordPress в больших масштабах: Прекратить TLS-соединение на HAProxy, кэшировать статические ресурсы в Nginx за ним или CDN, и включайте "липкие" сессии только если ваш PHP Хранилище сессий не централизовано (лучше использовать Redis для сессий).
  • Микросервисы API: Используйте HAProxy с маршрутизацией по пути или хосту к нескольким бэкэндам. Добавьте ограничение скорости и автоматические выключатели с помощью таблиц блокировки.
  • Развертывание без простоев: Добавьте новые узлы бэкэнда, отключите старые (установите вес 0 или отключите), а затем удалите их после завершения соединений.

YouStable Совет: Инфраструктура, упрощающая балансировку нагрузки

Если вы предпочитаете не manage Каждую деталь выбирайте сами. YouStableАвтора облачный VPS с выделенным сервером vCPUБлагодаря высокой пропускной способности и возможности использования плавающих IP-адресов, HAProxy/Nginx Кластеры просты в использовании. Наша служба поддержки может подсказать лучшие практики. SSLБезопасность и высокая доступность без привязки к конкретному поставщику.

Краткое описание (оптимизированное для поисковых систем): Как установить балансировщик нагрузки на сервер Linux

  • Выберите инструмент: HAProxy (расширенный L4/L7) или Nginx (Обратный прокси L7).
  • Установите через apt/dnf и включите службу.
  • Настройка интерфейса: 80/443 с проверками состояния, заголовками и SSL прекращение.
  • Определите бэкэнды: Пул серверов с проверками и возможностью сохранения сессий.
  • Безопасность: Усильте защиту TLS, брандмауэра и административных точек доступа.
  • Чешуя и гиалуроновая кислота: Добавить второго левого защитника и VIP-персону Keepalived.
  • Мониторинг и тестирование: Метрики, журналы и синтетические проверки.

Часто задаваемые вопросы: Установка балансировщика нагрузки на сервер Linux

Что лучше подходит для балансировки нагрузки в Linux: HAProxy или Nginx?

Для большинства производственных сред HAProxy предлагает более сложные проверки работоспособности, расширенную маршрутизацию и подробные метрики. Nginx Отлично, если вы уже используете его в качестве... веб-сервер и нуждаются в простой балансировке уровня L7. Оба варианта хорошо справляются с высокой нагрузкой; выбор следует делать исходя из потребностей в функциях и опыта команды.

В чём разница между балансировкой нагрузки на уровне 4 и уровне 7?

Четвертый уровень (TCP/UDP) пересылает соединения без проверки HTTP-трафика. Он быстрый и эффективный (например, IPVS, HAProxy в режиме TCP). Седьмой уровень понимает HTTP/HTTPS, что позволяет осуществлять маршрутизацию на основе пути, манипулировать заголовками, использовать cookie и т.д. SSL завершение. Используйте L7 для веб-приложений, которым требуется более интеллектуальная маршрутизация.

Как мне добавить SSL к моему балансировщику нагрузки Linux?

Завершайте TLS-соединение на балансировщике нагрузки с помощью сертификатов Let's Encrypt или сертификатов, выданных провайдером. В HAProxy используйте PEM-файл, содержащий полную цепочку соединений и закрытый ключ. NginxУстановите параметры ssl_certificate и ssl_certificate_key. Обеспечьте использование надежных шифров, HTTP/2 и HSTS, а также автоматизируйте продление сертификата.

Как обеспечить высокую доступность балансировщика нагрузки?

Разверните как минимум два узла балансировки нагрузки и назначьте виртуальный IP-адрес с помощью Keepalived/VRRP. DNS к VIP-адресу. В случае отказа основного балансировщика нагрузки резервный автоматически возьмет на себя его функции. Убедитесь, что оба узла используют общие сертификаты и конфигурацию посредством автоматизации.

Нужны ли мне «липкие сессии» для WordPress? PHP Программы?

Предпочтительно использовать централизованные сессии (Redis/Memcached), чтобы любой бэкенд мог обрабатывать любой запрос. Если это невозможно, включите «липкие» сессии в HAProxy (с помощью cookie) или Nginx (ip_hash) в качестве временного решения. В долгосрочной перспективе следует вынести сессии и загрузки за пределы узла, чтобы избежать привязки пользователей к одному узлу.

Как отслеживать состояние балансировщика нагрузки в Linux?

Используйте страницу статистики HAProxy и утилиту haproxy_exporter в Prometheus, или Nginx Ведение логов с помощью nginx-exporter/stub_status. Отслеживание времени ответа, ошибок, количества подключений и состояния бэкэнда. Централизация логов и настройка оповещений о доступности VIP-адресов и сбоях бэкэнда.

Могу ли я использовать один и тот же сервер для балансировки нагрузки и веб-хостинга?

Можно, но разделение ролей повышает надежность, безопасность и масштабируемость. Для небольших сайтов достаточно одного решения. Nginx Может предоставлять статический контент и выступать в качестве прокси для серверов приложений. Для более крупных систем следует выделить балансировщик нагрузки и масштабировать бэкэнды независимо, в идеале на облачном VPS, например, таком как... YouStable.

Следующие шаги

  • Начните с установки HAProxy на VPS под управлением Linux и настройте проверки работоспособности.
  • Добавить завершение TLS и усиленные заголовки.
  • Для обеспечения высокой доступности разверните дополнительный балансировщик нагрузки и функцию Keepalived.
  • Автоматизируйте настройку и синхронизацию сертификатов с помощью Ansible.
  • Регулярно проводите мониторинг с помощью Prometheus/Grafana и проверяйте отказоустойчивость.

Выполнив описанные выше шаги, вы сможете уверенно установить балансировщик нагрузки на сервер Linux, масштабировать свои приложения и поддерживать высокую доступность. Если вам нужен более быстрый старт, YouStableПлатформа VPS от и экспертная поддержка помогут вам развернуть отказоустойчивую архитектуру с балансировкой нагрузки за считанные часы, а не дни.

Отправить по:

Прахлад Праджапати

Пралад — специалист по веб-хостингу и эксперт по органическому росту сайтов с упором на SEO из Индии. Активно работая в цифровом пространстве с 2019 года, он помогает людям развивать свои веб-сайты с помощью эффективных и устойчивых стратегий. Увлеченный обучением и быстрой адаптацией, он считает, что мелкие детали приводят к большому успеху. Узнайте его мнение о веб-хостинге и SEO, чтобы улучшить свое присутствие в интернете.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Наверх