Перейти к содержимому

Публикация сайта через сетевой балансировщик нагрузки

Чтобы опубликовать сайт, который будет работать через внешний сетевой балансировщик нагрузки:

  1. Создайте сеть site-network для размещения виртуальных машин и сетевого балансировщика нагрузки.
  2. Создайте подсеть site-subnet в сети site-network.
  3. Зарезервируйте внешний IP-адрес site-ip для балансировщика нагрузки.
  4. Создайте две виртуальные машины site-vm-1 и site-vm-2 с внешними IP-адресами. При создании виртуальных машин используйте сеть site-network.

1. Подготовьте виртуальные машины к публикации сайта

Заголовок раздела «1. Подготовьте виртуальные машины к публикации сайта»
Важно

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

  1. Узнайте внешний IP-адрес ВМ.

  2. Установите веб-сервер NGINX:

    bash
    sudo apt update && sudo apt upgrade -y
    sudo apt install nginx -y
  3. Убедитесь, что веб-сервер установлен и запущен:

    bash
    systemctl status nginx

    Ожидаемый результат:

    bash
    ...
    Active: active (running) since Thu 2026-05-14 17:38:25 UTC; 14h ago
    ...
  4. Выдайте вашему пользователю права на запись для директории /var/www/html:

    bash
    sudo chown -R "$USER":www-data /var/www/html
  5. Удалите файл сайта по умолчанию:

    bash
    rm /var/www/html/index.nginx-debian.html
  6. Создайте новый файл сайта:

    bash
    sudo tee /var/www/html/index.html > /dev/null <<EOF
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Заголовок тестовой страницы</title>
    </head>
    <body>
    <h1>Тестовая страница</h1>
    <p>Ваш сайт работает.</p>
    </body>
    </html>
    EOF

Создайте группу адресов site-ag в сети site-network. При создании группы добавьте в нее внутренние IP-адреса виртуальных машин site-vm-1 и site-vm-2.

3. Создайте сетевой балансировщик нагрузки

Заголовок раздела «3. Создайте сетевой балансировщик нагрузки»
  1. В веб-консоли выберите нужный проект.

  2. В списке сервисов выберите Network Load Balancer и нажмите кнопку Создать.

  3. Укажите имя сетевого балансировщика — site-nlb.

  4. Выберите сеть для размещения балансировщика — site-network.

  5. Выберите тип сетевого балансировщика — внешний.

  6. Выберите зарезервированный внешний IP-адрес — site-ip.

  7. Добавьте правила балансировки:

    1. Выберите протокол TCP.

    2. Укажите порт, на котором балансировщик будет принимать трафик, — 80.

    3. Выберите группу адресов site-ag.

    4. Настройте проверки работоспособности:

      1. Выберите протокол TCP.

      2. Укажите порт для проверок — 80.

      3. Задайте Интервал — 2 с.

      4. Задайте Таймаут — 1 с.

      5. Задайте Порог доступности — 2 успешные проверки подряд.

      6. Задайте Порог недоступности — 2 проваленные проверки подряд.

    5. Нажмите кнопку Добавить, чтобы добавить правило балансировки.

  8. (опционально) Добавьте описание балансировщика.

  9. Нажмите кнопку Создать.

Чтобы балансировщик мог принимать трафик и проводить проверки работоспособности, создайте правила файрвола.

  1. Создайте правило файрвола, необходимое для работы проверок работоспособности:

    • НаправлениеINGRESS.
    • ДействиеALLOW.
    • Приоритет1000.
    • Источник трафика169.254.192.0/19.
    • Назначение трафика — внутренние IP-адреса site-vm-1 и site-vm-2 в нотации CIDR. Например, 10.0.0.4/32 и 10.0.0.5/32.
    • Протокол и портTCP:80.
  2. Создайте правило файрвола, которое разрешает балансировщику принимать трафик из интернета:

    • НаправлениеINGRESS.
    • ДействиеALLOW.
    • Приоритет1000.
    • Источник трафика0.0.0.0/0.
    • Назначение трафика — внутренние IP-адреса site-vm-1 и site-vm-2 в нотации CIDR. Например, 10.0.0.4/32 и 10.0.0.5/32.
    • Протокол и портTCP:80.

5. Проверьте доступность и отказоустойчивость сайта

Заголовок раздела «5. Проверьте доступность и отказоустойчивость сайта»
  1. В браузере на локальном компьютере перейдите по ссылке http://<внешний IP-адрес балансировщика>. Если сайт работает, вы увидите страницу index.html.

  2. Подключитесь к ВМ site-vm-1 по внешнему IP-адресу.

  3. Остановите веб-сервер NGINX:

    bash
    sudo systemctl stop nginx
  4. Убедитесь, что веб-сервер остановлен:

    bash
    systemctl status nginx

    Ожидаемый результат:

    bash
    ...
    Active: inactive (dead) since Fri 2026-05-15 09:38:03 UTC; 4s ago
    ...
  5. Снова перейдите по ссылке http://<внешний IP-адрес балансировщика>. Сайт должен работать несмотря на остановку одного из веб-серверов.

Ресурсы, созданные в руководстве, тарифицируются. Если вы больше не планируете использовать их: