Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации времени NTP
    • Работа с группой ВМ с автоматическим масштабированием
    • Автомасштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Yandex Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360
    • Интеграция с корпоративным сервисом DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция базы данных из стороннего кластера Apache Kafka® в Yandex Managed Service for Apache Kafka®
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse с помощью Yandex Data Transfer
    • Перенос данных между кластерами Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Управление схемами данных в Yandex Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Yandex Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Yandex Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Настройка Yandex Managed Service for ClickHouse для Graphite
    • Получение данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse
    • Получение данных из RabbitMQ в Yandex Managed Service for ClickHouse
    • Сохранение потока данных Yandex Data Streams в Yandex Managed Service for ClickHouse
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse
    • Шардирование таблиц Yandex Managed Service for ClickHouse
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Yandex Cloud DNS для доступа к кластеру Yandex Managed Service for ClickHouse из других облачных сетей
    • Импорт данных из Yandex Managed Service for MySQL в Yandex Data Proc с помощью Sqoop
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Yandex Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Yandex Managed Service for MongoDB
    • Миграция данных в Yandex Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция базы данных из стороннего кластера MySQL в кластер Yandex Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Yandex Managed Service for MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в сторонний кластер MySQL
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Object Storage с помощью Yandex Data Transfer
    • Создание кластера PostgreSQL для 1С
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция базы данных из стороннего кластера PostgreSQL в кластер Yandex Managed Service for PostgreSQL
    • Миграция базы данных из Managed Service for PostgreSQL
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for PostgreSQL в Yandex Object Storage
    • Миграция базы данных из Greenplum® в ClickHouse
    • Миграция базы данных из Greenplum® в PostgreSQL
    • Миграция базы данных из стороннего кластера Redis в Yandex Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Yandex Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Веб-сервис
  2. Организация виртуального хостинга

Организация виртуального хостинга

Статья создана
Yandex Cloud
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Зарезервируйте статический публичный IP-адрес
  • Создайте группы безопасности
  • Импортируйте TLS-сертификаты сайтов в Certificate Manager
  • Создайте группы ВМ для сайтов
  • Загрузите файлы сайтов на ВМ
  • Создайте группы бэкендов
  • Создайте и настройте HTTP-роутеры
    • Создайте HTTP-роутеры для сайтов
    • Создайте HTTP-роутер «по умолчанию»
  • Создайте L7-балансировщик
  • Настройте DNS для сайтов
  • Проверьте работу хостинга
  • Удалите созданные ресурсы

Сценарий описывает организацию виртуального хостинга — размещение нескольких веб-сайтов с разными доменными именами по одному IP-адресу — с помощью Yandex Application Load Balancer.

В качестве примеров в сценарии будут использоваться три доменных имени: site-a.com, site-b.com и default.com.

Чтобы создать виртуальный хостинг:

  1. Подготовьте облако к работе.
  2. Создайте облачную сеть.
  3. Зарезервируйте статический публичный IP-адрес.
  4. Создайте группы безопасности.
  5. Импортируйте TLS-сертификаты сайтов в Certificate Manager.
  6. Создайте группы ВМ для сайтов.
  7. Загрузите файлы сайтов на ВМ.
  8. Создайте группы бэкендов.
  9. Создайте и настройте HTTP-роутеры.
  10. Создайте L7-балансировщик.
  11. Настройте DNS для сайтов.
  12. Проверьте работу хостинга.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работе

Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

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

Подробнее об облаках и каталогах.

Необходимые платные ресурсы

В стоимость поддержки виртуального хостинга входят:

  • плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
  • плата за использование публичного статического IP-адреса (см. тарифы Yandex Virtual Private Cloud).

Создайте облачную сеть

Все ресурсы, созданные в сценарии, будут относиться к одной облачной сети.

Чтобы создать сеть:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.
  2. Нажмите кнопку Создать сеть.
  3. Укажите Имя сети: vhosting-network.
  4. В поле Дополнительно выберите опцию Создать подсети.
  5. Нажмите кнопку Создать сеть.

Зарезервируйте статический публичный IP-адрес

Для работы виртуального хостинга потребуется статический публичный IP-адрес, который будет назначен L7-балансировщику.

Чтобы зарезервировать адрес:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.
  2. Откройте вкладку IP-адреса. Нажмите кнопку Зарезервировать адрес.
  3. В открывшемся окне выберите зону доступности ru-central1-a. Нажмите кнопку Зарезервировать.

Создайте группы безопасности

Примечание

Группы безопасности находятся на стадии Preview. Если они недоступны в вашей сети, для ресурсов будет разрешен весь входящий и исходящий трафик и дополнительной настройки не требуется.

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

Чтобы создать группы безопасности:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.

  2. Откройте вкладку Группы безопасности.

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

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

    2. Укажите Имя группы: vhosting-sg-balancer.

    3. Выберите Сеть vhosting-network.

    4. В блоке Правила создайте следующие правила по инструкции под таблицей:

      Направление
      трафика
      Описание Диапазон
      портов
      Протокол Тип источника /
      назначения
      Источник /
      назначение
      Исходящий any Весь Любой CIDR 0.0.0.0/0
      Входящий ext-http 80 TCP CIDR 0.0.0.0/0
      Входящий ext-https 443 TCP CIDR 0.0.0.0/0
      Входящий healthchecks 30080 TCP Проверки состояния балансировщика —
      1. Выберите вкладку Исходящий трафик или Входящий трафик.

      2. Нажмите кнопку Добавить правило.

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

      4. В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.

      5. В поле Назначение или Источник выберите назначение правила:

        • CIDR — правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите CIDR и маски подсетей, в которые или из которых будет поступать трафик. Чтобы добавить несколько CIDR, нажимайте кнопку Добавить CIDR.
        • Группа безопасности — правило будет применено к ВМ из текущей группы или из выбранной группы безопасности.
        • Проверки состояния балансировщика — правило, которое позволяет балансировщику проверять состояние ВМ.
      6. Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.

    5. Нажмите кнопку Сохранить.

  4. Аналогично создайте группу безопасности для ВМ с именем vhosting-sg-vms, той же сетью vhosting-network и следующими правилами:

    Направление
    трафика
    Описание Диапазон
    портов
    Протокол Тип источника Источник
    Входящий balancer 80 TCP Группа безопасности vhosting-sg-balancer
    Входящий ssh 22 TCP CIDR 0.0.0.0/0

Импортируйте TLS-сертификаты сайтов в Certificate Manager

Чтобы пользователи могли обращаться к сайтам по защищенному протоколу HTTPS (HTTP over TLS), для них должны быть выпущены TLS-сертификаты. Для использования в L7-балансировщике сертификаты нужно импортировать в Certificate Manager.

Если у ваших сайтов нет сертификатов, вы можете получить в Certificate Manager сертификаты от Let's Encrypt®. В этом случае дополнительных действий после создания сертификатов не требуется: они импортируются автоматически.

Чтобы импортировать уже имеющийся сертификат для сайта site-a.com:

Консоль управления
  1. В консоли управления выберите сервис Certificate Manager.
  2. Нажмите кнопку Добавить сертификат и выберите пункт Пользовательский сертификат.
  3. Укажите Имя сертификата: vhosting-cert-a.
  4. В поле Сертификат нажмите кнопку Добавить сертификат. Загрузите Файл с вашим сертификатом или укажите его Содержимое и нажмите кнопку Добавить.
  5. Если ваш сертификат выпущен сторонним центром сертификации, в поле Цепочка промежуточных сертификатов нажмите кнопку Добавить цепочку. Загрузите Файл с цепочкой сертификатов или укажите его Содержимое и нажмите кнопку Добавить.
  6. В поле Приватный ключ нажмите кнопку Добавить приватный ключ. Загрузите Файл с ключом или укажите его Содержимое и нажмите кнопку Добавить.
  7. Нажмите кнопку Создать.

Аналогично импортируйте сертификаты для сайтов site-b.com и default.com с именами vhosting-cert-b и vhosting-cert-default.

Создайте группы ВМ для сайтов

В качестве веб-серверов для двух сайтов будут выступать виртуальные машины Compute Cloud — по одной группе из нескольких одинаковых ВМ на каждый сайт. В этом сценарии серверы будут реализованы на LEMP-стеке (Linux, nginx, MySQL, PHP; подробнее см. в сценарии использования Веб-сайт на LAMP- или LEMP-стеке).

Чтобы создать группу ВМ для сайта site-a.com:

Консоль управления
  1. В консоли управления выберите сервис Compute Cloud.

  2. Откройте вкладку Группы виртуальных машин. Нажмите кнопку Создать группу.

  3. Укажите имя группы ВМ: vhosting-ig-a.

  4. В блоке Распределение выберите несколько зон доступности, чтобы обеспечить отказоустойчивость хостинга.

  5. В блоке Шаблон виртуальной машины нажмите кнопку Задать.

  6. В блоке Выбор образа/загрузочного диска откройте вкладку Cloud Marketplace и нажмите кнопку Посмотреть больше. Выберите продукт LEMP и нажмите кнопку Использовать.

  7. В блоке Вычислительные ресурсы:

    • Выберите платформу виртуальной машины.
    • Укажите необходимое количество vCPU и объем RAM.

    Для функционального тестирования сайта хватит минимальной конфигурации:

    • Платформа — Intel Ice Lake.
    • Гарантированная доля vCPU — 20%.
    • vCPU — 2.
    • RAM — 1 ГБ.
  8. В блоке Сетевые настройки выберите Сеть vhosting-network, созданную ранее, и ее подсети.

  9. В поле Публичный адрес выберите Автоматически.

  10. Выберите группу безопасности vhosting-sg-vms, созданную ранее.

  11. Укажите данные для доступа на виртуальную машину:

    • В поле Логин введите имя пользователя.

    • В поле SSH-ключ вставьте содержимое файла открытого ключа.

      Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к виртуальным машинам по SSH.

    Внимание

    IP-адрес и имя хоста (FQDN) для подключения к машине назначатся ей при создании. Если вы выбрали вариант Без адреса в поле Публичный адрес, вы не сможете обращаться к ВМ из интернета.

  12. Нажмите кнопку Сохранить.

  13. В блоке Масштабирование укажите Размер группы ВМ — 2.

  14. В блоке Интеграция с Application Load Balancer выберите опцию Создать целевую группу и укажите имя группы — vhosting-tg-a. Подробнее о целевых группах.

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

Аналогично создайте для сайта site-b.com вторую группу ВМ с именем vhosting-ig-b и целевую группу с именем vhosting-tg-b.

Создание группы ВМ может занять несколько минут. Когда группа перейдет в статус RUNNING, а все ВМ в ней — в статус RUNNING_ACTUAL, вы можете загрузить на них файлы веб-сайта.

ig-running

Загрузите файлы сайтов на ВМ

Чтобы проверить работу веб-серверов, загрузите на виртуальные машины файлы index.html: на ВМ из группы vhosting-ig-a — с одним содержанием, а на ВМ из группы vhosting-ig-b — с другим.

Пример файла index.html для группы vhosting-ig-a
<!DOCTYPE html>
<html>
  <head>
    <title>Site A</title>
  </head>
  <body>
    <p>This is site A</p>
  </body>
</html>
Пример файла index.html для группы vhosting-ig-b
<!DOCTYPE html>
<html>
  <head>
    <title>Site B</title>
  </head>
  <body>
    <p>This is site B</p>
  </body>
</html>

Чтобы загрузить файл на ВМ:

  1. В блоке Сеть на странице ВМ в консоли управления найдите публичный IP-адрес ВМ.

  2. Подключитесь к ВМ по протоколу SSH.

  3. Выдайте права на запись для вашего пользователя на директорию /var/www/html:

    Ubuntu
    CentOS
    sudo chown -R "$USER":www-data /var/www/html
    
    sudo chown -R "$USER":apache /var/www/html
    
  4. Загрузите на ВМ файлы веб-сайта с помощью протокола SCP.

    Linux/macOS
    Windows

    Используйте утилиту командной строки scp:

    scp -r <путь до директории с файлами> <имя пользователя ВМ>@<IP-адрес виртуальной машины>:/var/www/html
    

    С помощью программы WinSCP скопируйте локальную директорию с файлами в директорию /var/www/html на ВМ.

Повторите этот процесс с нужными файлами для каждой ВМ из групп vhosting-ig-a и vhosting-ig-b.

Создайте группы бэкендов

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

Для бэкендов в группах будут созданы проверки состояния: балансировщик будет периодически отправлять проверочные запросы к ВМ и ожидать ответа в течение определенного периода.

Чтобы создать группу бэкендов для сайта site-a.com:

  1. В консоли управления выберите сервис Application Load Balancer.
  2. Откройте вкладку Группы бэкендов. Нажмите кнопку Создать группу бэкендов.
  3. Укажите Имя группы бэкендов: vhosting-bg-a.
  4. В блоке Бэкенды нажмите кнопку Добавить.
  5. Укажите Имя бэкенда: vhosting-backend-a.
  6. В поле Целевая группа выберите группу vhosting-tg-a.
  7. Укажите Порт, на котором ВМ бэкенда будут принимать входящий трафик от балансировщика: 80.
  8. Нажмите кнопку Добавить проверку состояния.
  9. Укажите Порт, на котором ВМ бэкенда будут принимать проверочные соединения: 80.
  10. Укажите Путь, к которому будет обращаться балансировщик при проверке состояния: /.
  11. Нажмите кнопку Создать.

Аналогично создайте для сайта site-b.com вторую группу бэкендов vhosting-bg-b, в ней — бэкенд vhosting-backend-b и привяжите к нему целевую группу vhosting-tg-b.

Создайте и настройте HTTP-роутеры

Группы бэкендов нужно привязать к HTTP-роутерам с правилами маршрутизации HTTP-запросов. В сценарии будут созданы два роутера для «основных» сайтов site-a.com и site-b.com и роутер «по умолчанию» для сайта default.com, который будет отвечать на каждый запрос HTTP-кодом состояния 404 Not Found.

Создайте HTTP-роутеры для сайтов

Чтобы создать HTTP-роутер для сайта site-a.com:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.
  2. Откройте вкладку HTTP-роутеры. Нажмите кнопку Создать HTTP-роутер.
  3. Укажите Имя HTTP-роутера: vhosting-router-a.
  4. Нажмите кнопку Добавить виртуальный хост.
  5. Укажите Имя виртуального хоста: vhosting-host-a.
  6. В поле Authority укажите доменное имя сайта: site-a.com.
  7. Нажмите кнопку Добавить маршрут.
  8. Укажите Имя маршрута: vhosting-route-a.
  9. В поле Группа бэкендов выберите группу vhosting-bg-a.
  10. Нажмите кнопку Создать.

Аналогично создайте для сайта site-b.com HTTP-роутер vhosting-router-b и привяжите к нему группу бэкендов vhosting-bg-b.

Создайте HTTP-роутер «по умолчанию»

Чтобы создать HTTP-роутер для сайта default.com:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.

  2. Откройте вкладку HTTP-роутеры. Нажмите кнопку Создать HTTP-роутер.

  3. Укажите Имя HTTP-роутера: vhosting-router-default.

  4. Нажмите кнопку Добавить виртуальный хост.

  5. Укажите Имя виртуального хоста: vhosting-host-default.

  6. В поле Authority укажите доменное имя сайта: default.com.

  7. Нажмите кнопку Добавить маршрут.

  8. Укажите Имя маршрута: vhosting-route-a.

  9. В поле Действие выберите Ответ.

  10. В поле Код состояния HTTP выберите 404 Not Found.

  11. В поле Тело ответа нажмите кнопку Выбрать. Выберите способ Текст и в поле Содержимое укажите:

    404 Not Found
    
    This is the default site.
    

    Нажмите кнопку Добавить.

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

Создайте L7-балансировщик

Чтобы создать балансировщик:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.

  2. Нажмите кнопку Создать L7-балансировщик.

  3. Укажите Имя балансировщика: vhosting-alb.

  4. В блоке Сетевые настройки выберите группу безопасности vhosting-sg-balancer, созданную ранее.

  5. Создайте обработчик для перенаправления HTTP-запросов на HTTPS:

    1. В блоке Обработчики нажмите кнопку Добавить обработчик.
    2. Укажите Имя обработчика: vhosting-listener-http.
    3. В блоке Настройки публичного IP-адреса выберите тип Список и IP-адрес, зарезервированный ранее.
    4. В поле Протокол выберите пункт Перенаправлять на HTTPS.
  6. Создайте обработчик HTTPS-запросов:

    1. Снова нажмите кнопку Добавить обработчик.

    2. Укажите Имя обработчика: vhosting-listener-https.

    3. В блоке Настройки публичного IP-адреса выберите тип Список и IP-адрес, зарезервированный ранее.

    4. В поле Протокол выберите пункт HTTPS.

    5. В блоке Основной обработчик выберите сертификат vhosting-cert-default и HTTP-роутер vhosting-router-default.

    6. Добавьте обработчик SNI для сайта site-a.com:

      1. Нажмите кнопку Добавить обработчик SNI.
      2. Укажите Имя обработчика SNI: vhosting-sni-a.
      3. В поле Имена серверов укажите site-a.com.
      4. Выберите сертификат vhosting-cert-a и HTTP-роутер vhosting-router-a.
    7. Аналогично добавьте обработчик SNI для сайта site-b.com — с именем vhosting-sni-b, именем сервера site-b.com, сертификатом vhosting-cert-b и HTTP-роутером vhosting-router-b.

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

Настройте DNS для сайтов

Доменные имена site-a.com, site-b.com и default.com должны быть связаны с IP-адресом L7-балансировщика с помощью записей DNS.

Чтобы настроить DNS для сайта site-a.com:

  1. В консоли управления выберите сервис Application Load Balancer.

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

  3. На сайте компании, которая предоставляет вам услуги DNS-хостинга, перейдите в настройки DNS.

  4. Создайте или измените A-запись для site-a.com таким образом, чтобы она указывала на скопированный IP-адрес:

    site-a.com. A <IP-адрес L7-балансировщика> 
    

    Если вы пользуетесь Cloud DNS, настройте запись по следующей инструкции:

    Инструкция по настройке DNS-записей для Cloud DNS
    Консоль управления
    1. В консоли управления выберите сервис Cloud DNS.

    2. Если у вас нет публичной зоны DNS, создайте ее:

      1. Нажмите кнопку Создать зону.
      2. Укажите Имя зоны: vhosting-dns-a.
      3. В поле Зона укажите доменное имя сайта с точкой в конце: site-a.com.
      4. Выберите Тип зоны — Публичная.
      5. Нажмите кнопку Создать.
    3. Создайте запись в зоне:

      1. В списке зон нажмите на зону vhosting-dns-a.
      2. Нажмите кнопку Создать запись.
      3. Поле Имя оставьте пустым, чтобы запись соответствовала доменному имени site-a.com (а не имени с субдоменом, например www.site-a.com).
      4. Выберите Тип записи — A.
      5. В поле Значение вставьте скопированный IP-адрес балансировщика.
      6. Нажмите кнопку Создать.

Аналогично настройте DNS для сайтов site-b.com и default.com, используя тот же IP-адрес.

Через 15–20 минут после настройки DNS вы сможете проверить работу сайтов.

Проверьте работу хостинга

Чтобы проверить работу хостинга, откройте каждый из трех сайтов в браузере:

  • https://site-a.com и https://site-b.com — должны отобразиться страницы, загруженные на ВМ;
  • https://default.com — должна отобразиться страница с ошибкой 404 Not Found, настроенная при создании HTTP-роутера.

Удалите созданные ресурсы

Чтобы остановить работу хостинга и перестать платить за созданные ресурсы:

  1. Удалите нетарифицируемые ресурсы, которые блокируют удаление тарифицируемых ресурсов:

    1. Удалите L7-балансировщик vhosting-alb.
    2. Удалите HTTP-роутеры vhosting-router-a, vhosting-router-b и vhosting-router-default.
    3. Удалите группы бэкендов vhosting-bg-a и vhosting-bg-b.
  2. Удалите группы виртуальных машин vhosting-ig-a и vhosting-ig-b.

  3. Удалите зарезервированный статический публичный адрес.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Зарезервируйте статический публичный IP-адрес
  • Создайте группы безопасности
  • Импортируйте TLS-сертификаты сайтов в Certificate Manager
  • Создайте группы ВМ для сайтов
  • Загрузите файлы сайтов на ВМ
  • Создайте группы бэкендов
  • Создайте и настройте HTTP-роутеры
  • Создайте HTTP-роутеры для сайтов
  • Создайте HTTP-роутер «по умолчанию»
  • Создайте L7-балансировщик
  • Настройте DNS для сайтов
  • Проверьте работу хостинга
  • Удалите созданные ресурсы