---
title: 'Подключить балансировщик'
sidebar_label: 'Подключить балансировщик'
description: 'Как распределить нагрузку между серверами с помощью балансировщика: объединить серверы в приватную сеть, заказать балансировщик, проверить работу балансировщика'
sidebar_position: 2
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical'
import {TabItemLabel} from '@selectel/docux/components'
import CreateGlobalRouter from '@site/docs/_partials/global-router/create-global-router.mdx'
import ConnectDedicatedNetworkToGlobalRouter from '@site/docs/_partials/global-router/connect-dedicated-network-to-global-router.mdx'
import ConnectCloudNetworkToGlobalRouter from '@site/docs/_partials/global-router/connect-cloud-network-to-global-router.mdx'
import ConfigureNetworkInterfaceOfPrivateNetwork from '@site/docs/_partials/dedicated/configure-network-interface-of-private-network.mdx'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Подключить балансировщик

1. [Создайте глобальный роутер](#create-global-router).

2. [Подключите к глобальному роутеру сети и подсети](#connect-networks-and-subnets-to-global-router) до каждого VLAN и проекта облачной платформы, где находятся серверы для балансировки.

   &#x20;Для [Облака на базе VMware](/public-cloud/about/about-public-cloud.mdx) добавить сети и подсети можно только через [техническую поддержку](https://my.selectel.ru/tickets/create/).

3. [Назначьте IP-адреса из подсетей на серверы](#assign-ip-addresses-on-servers).

4. [Настройте маршрутизацию до подсети балансировщика](#configure-routing-up-to-load-balancer-subnet).

5. [Закажите балансировщик](#order-balancer).

6. [Проверьте работу балансировщика](#check-balancer-operation).

## 1. Создать глобальный роутер \{#create-global-router}

<CreateGlobalRouter />

## 2. Подключить сети и подсети к глобальному роутеру⁠ \{#connect-networks-and-subnets-to-global-router}

:::danger

При создании сети не используйте на серверах адреса из подсети `10.128.0.0/16`. В этой подсети размещаются балансировщики нагрузки, ее использование может вызвать сбои в работе балансировщиков.

:::

<Tabs queryString="connect-networks-and-subnets-to-global-router">
  <TabItem value="dedicated" default>
    <TabItemLabel>
      Выделенный сервер
    </TabItemLabel>

    Используйте для выделенного или размещенного сервера.

    <ConnectDedicatedNetworkToGlobalRouter />
  </TabItem>

  <TabItem value="cloud-platform">
    <TabItemLabel>
      Облачная платформа
    </TabItemLabel>

    Используйте для облачного сервера, нод кластера Managed Kubernetes или кластера облачных баз данных.

    <ConnectCloudNetworkToGlobalRouter />
  </TabItem>
</Tabs>

## 3. Назначить IP-адреса на серверы \{#assign-ip-addresses-on-servers}

<Tabs queryString="assign-ip-addresses-on-servers">
  <TabItem value="dedicated" default>
    <TabItemLabel>
      Выделенный сервер
    </TabItemLabel>

    <ConfigureNetworkInterfaceOfPrivateNetwork />
  </TabItem>

  <TabItem value="cloud-platform">
    <TabItemLabel>
      Облачная платформа
    </TabItemLabel>

    1. [Добавьте облачный сервер или ноду кластера Managed Kubernetes](/cloud-servers/cloud-networks/ports.mdx#add-cloud-server-to-subnet-via-port) в подсеть, которую вы подключили к глобальному роутеру. Если у вас еще нет сервера или ноды, создайте их. При создании в качестве подсети выберите подсеть, которую вы подключили к глобальному роутеру.
    2. Примените изменения в зависимости от параметра порта **Применять изменения**. Значение параметра можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/servers/): в верхнем меню нажмите **Продукты** → **Облачные серверы** → страница сервера → вкладка **Порты** → блок **Настройка портов**:

       * **При перезагрузке сервера** — [программно перезагрузите облачный сервер](/cloud-servers/manage/reboot-server.mdx) или вручную внесите изменения в файле конфигурации сети на сервере;
       * **Вручную в файле конфигурации сети на сервере** — вручную внесите изменения в файле конфигурации сети на сервере.
  </TabItem>

  <TabItem value="wmvare-cloud">
    <TabItemLabel>
      Облако на базе VMware
    </TabItemLabel>

    1. Откройте панель **Cloud Director**.
    2. Перейдите на вкладку **Virtual Machines**.
    3. В блоке нужной виртуальной машины нажмите кнопку **Details**.
    4. В блоке **Hardware** выберите блок **NICs** и нажмите кнопку **Edit - New**.
    5. Выберите сеть глобального роутера.
    6. Нажмите кнопку **Save**.
  </TabItem>
</Tabs>

## 4. Настроить маршрутизацию до подсети балансировщика \{#configure-routing-up-to-load-balancer-subnet}

На каждом из серверов нужно заранее настроить маршрутизацию до подсети, в которой мы разместим балансировщик при подключении услуги. По умолчанию мы размещаем балансировщики в подсети `10.128.0.0/16`, но вы можете выбрать любую подходящую подсеть размерности `/16`.

<Tabs queryString="configure-routing-up-to-load-balancer-subnet">
  {/* only-in selectel */}

  <TabItem value="dedicated-server-and-vmware-cloud" default>
    <TabItemLabel>
      Выделенный сервер, облако на базе VMware
    </TabItemLabel>

    {/* only-in servercore */}

    <TabItem value="dedicated-server" default>
      <TabItemLabel>
        Выделенный сервер
      </TabItemLabel>

      {/* only-in */}

      <Tabs queryString="dedicated-server">
        <TabItem value="ubuntu" default>
          <TabItemLabel>
            Ubuntu
          </TabItemLabel>

          1. [Подключитесь к серверу](/dedicated/manage/connect-to-server.mdx).

          2. Откройте файл конфигурации сети:

             ```
             vi /etc/netplan/01-netcfg.yaml
             ```

          3. В конце блока с данными нужного сетевого интерфейса добавьте маршрут:

             ```
             routes:
               - to: <ip_address>/<mask>
                 via: <gateway>
             ```

             Укажите:

             * `<ip_address>/<mask>` — подсеть балансировщика. Вы можете указать подсеть `10.128.0.0/16`, в которой мы по умолчанию размещаем балансировщики, или любую подходящую подсеть размерности `/16`;
             * `<gateway>` — IP-адрес из подсети сервера, который вы назначили в качестве шлюза на глобальный роутер при [подключении сетей и подсетей](#connect-networks-and-subnets-to-global-router).

          4. Сохраните файл.

          5. Проверьте настройки:

             ```
             sudo netplan try
             ```

          6. Примените изменения:

             ```
             netplan apply
             ```
        </TabItem>

        <TabItem value="debian">
          <TabItemLabel>
            Debian
          </TabItemLabel>

          1. [Подключитесь к серверу](/dedicated/manage/connect-to-server.mdx).

          2. Откройте файл конфигурации сети:

             ```
             vi  /etc/network/interfaces
             ```

          3. В конце блока с данными соответствующего сетевого интерфейса добавьте нужный маршрут:

             ```
             up route add -net <ip_address> netmask <mask> gw <gateway>
             down route del -net <ip_address> netmask <mask> gw <gateway>
             ```

             Укажите:

             * `<ip_address>` — подсеть балансировщика. Вы можете указать подсеть `10.128.0.0/16`, в которой мы по умолчанию размещаем балансировщики, или любую подходящую подсеть размерности `/16`;
             * `<mask>` — `255.255.0.0`;
             * `<gateway>` — IP-адрес из подсети сервера, который вы назначили в качестве шлюза на глобальный роутер при [подключении сетей и подсетей](#connect-networks-and-subnets-to-global-router).

          4. Сохраните файл.

          5. Перезапустите сеть:

             ```
             sudo /etc/init.d/networking restart
             ```
        </TabItem>

        <TabItem value="centos">
          <TabItemLabel>
            CentOS
          </TabItemLabel>

          1. [Подключитесь к серверу](/dedicated/manage/connect-to-server.mdx).

          2. Создайте и заполните файл для настройки статических маршрутов:

             ```
             echo "<ip_address>/<mask> via <gateway>" >> /etc/sysconfig/network-scripts/route-<eth_name>
             ```

             Укажите:

             * `<ip_address>/<mask>` — подсеть балансировщика. Вы можете указать подсеть `10.128.0.0/16`, в которой мы по умолчанию размещаем балансировщики, или любую подходящую подсеть размерности `/16`;
             * `<gateway>` — IP-адрес из подсети сервера, который вы назначили в качестве шлюза на глобальный роутер при [подключении сетей и подсетей](#connect-networks-and-subnets-to-global-router);
             * `<eth_name>` — имя соответствующего интерфейса локальной сети.

          3. Перезапустите сеть:

             ```
             systemctl restart network
             ```
        </TabItem>

        <TabItem value="windows">
          <TabItemLabel>
            Windows
          </TabItemLabel>

          1. [Подключитесь к серверу по RDP](/dedicated/manage/connect-to-server.mdx#connect-via-rdp) или через [KVM-консоль](/dedicated/manage/connect-to-server.mdx#connect-via-kvm-console).
          2. Добавьте необходимые маршруты по одному:

             ```shell
             route -p ADD <ip_address> MASK <mask> <gateway> METRIC <x>
             ```

             Укажите:

             * `<ip_address>` — подсеть балансировщика. Вы можете указать подсеть `10.128.0.0/16`, в которой мы по умолчанию размещаем балансировщики, или любую подходящую подсеть размерности `/16`;
             * `<mask>` — `255.255.0.0`;
             * `<gateway>` — IP-адрес из подсети сервера, который вы назначили в качестве шлюза на глобальный роутер при [подключении сетей и подсетей](#connect-networks-and-subnets-to-global-router);
             * `<x>` — параметр, определяющий приоритет указанного шлюза, 1 — наивысший приоритет.
        </TabItem>
      </Tabs>

      {/* only-in nothing */}
    </TabItem>
  </TabItem>

  <TabItem value="cloud-platform" default>
    <TabItemLabel>
      Облачная платформа
    </TabItemLabel>

    Чтобы прописать статические маршруты для облачного сервера, кластера облачных баз данных или кластера Managed Kubernetes, необходимо [настроить статический маршрут в приватной подсети](/cloud-servers/cloud-networks/static-routes.mdx#configure-static-routing-on-subnet), где находится сервер или кластер.

    При настройке маршрута укажите подсеть назначения — подсеть балансировщика.
  </TabItem>
</Tabs>

## 5. Заказать балансировщик \{#order-balancer}

1. Если на ваших серверах используется протокол HTTPS, [добавьте свой TLS(SSL)-сертификат в менеджер сертификатов](/certificates-manager/certificates/user-certificates.mdx#add-user-certificate). Вы также можете [выпустить сертификат Let's Encrypt®](/certificates-manager/certificates/lets-encrypt.mdx).

2. В [панели управления](https://my.selectel.ru/network/load-balancer/) в верхнем меню нажмите **Продукты** и выберите **Балансировщик нагрузки**.

3. Нажмите **Подключить балансировщик**.

4. Выберите тариф согласно нужной ширине канала — 20, 50, 100 или 1 000 Мбит/с. Если вам нужна другая ширина канала, выберите пункт **Другой** и укажите необходимое значение в Мбит/с.

5. Укажите глобальный роутер, к которому вы [подключили сети и подсети⁠](#connect-networks-and-subnets-to-global-router) — его имя, идентификатор или список добавленных на роутер подсетей. Данные роутера можно посмотреть в [панели управления](https://my.selectel.ru/network/localnetwork/l3_list): в верхнем меню нажмите **Продукты** → **Глобальный роутер** → страница роутера.

6. Укажите подсеть балансировщика, которую вы указали при [настройке маршрутизации⁠](#configure-routing-up-to-load-balancer-subnet) на серверах.

7. Выберите алгоритм балансировки:

   * Round Robin — алгоритм кругового обслуживания, при котором запросы передаются каждому серверу по очереди;
   * Weighted Round Robin — взвешенный алгоритм кругового обслуживания, при котором каждому серверу присваивается весовой коэффициент, соответствующий его производительности и мощности. На серверы с большим коэффициентом передается больше запросов;
   * Source IP hash — алгоритм, при котором в зависимости от HTTP-заголовка или IP-адреса выбирается предпочтительный сервер для получения запроса;
   * Least Connections — алгоритм, при котором запрос отправляется на наименее загруженный сервер.

8. Если необходимо использовать Sticky Sessions, отметьте чекбокс **Sticky Sessions**.

9. Выберите протокол целевых серверов: TCP, HTTP, HTTPS.

10. Если вы выбрали протокол TCP, укажите параметры для использования протокола — все приватные IP-адреса, назначенные в рамках сетей глобального роутера, с указанием портов.

11. Если вы выбрали протокол HTTP, укажите все сочетания URL, принимаемых из интернета, и IP-адресов, куда они должны перенаправляться, с указанием порта. Например, `http://domain.com/page — http://X.X.X.X:X`.

12. Если вы выбрали протокол HTTPS, укажите:

    * все сочетания URL, принимаемых из интернета, и IP-адресов, куда они должны перенаправляться, с указанием порта. Например, `https://domain.com/page — http://X.X.X.X:X`;
    * ID сертификата, который добавили на шаге 1. ID можно посмотреть в [панели управления](https://my.selectel.ru/certificates/): в верхнем меню нажмите **Продукты** → **Менеджер сертификатов** → в меню <MoreVerticalIcon /> сертификата выберите **Скопировать UUID**;
    * ID [проекта](/access-control/projects/about-projects.mdx), в котором находится сертификат.

13. Опционально: если нужно указать любые дополнительные данные, введите их в поле **Дополнительный комментарий**. Например, подробнее опишите сценарий использования, укажите, в каких [пулах](/infrastructure/locations.mdx#pool) размещена инфраструктура, оставьте контакт администратора для связи и уточнения деталей.

14. Нажмите **Подключить балансировщик**.

15. Мы создадим и отправим [тикет](https://my.selectel.ru/tickets/) на подключение услуги. Подключение занимает до семи рабочих дней. Когда балансировщик будет готов, в тикете передадим вам защищенный публичный IP-адрес, на который нужно направлять входящий трафик для балансировки.

## 6. Проверить работу балансировщика \{#check-balancer-operation}

Чтобы проверить работу балансировщика, отправьте тестовые запросы на IP-адрес, который вы получили при [заказе балансировщика](#order-balancer).

<Formbricks />
