Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все руководства
    • Получение статистики запросов к объекту с использованием S3 Select
    • Получение статистики посещения сайта с использованием S3 Select
    • Получение статистики запросов к объектам с использованием Yandex Query
    • Анализ поресурсной детализации расходов
    • Шифрование на стороне сервера
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Анализ логов с использованием DataLens
    • Монтирование бакетов к файловой системе хостов Yandex Data Processing
    • Использование Object Storage в Yandex Data Processing
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Подключение бакета как диска в Windows
    • Миграция данных из Yandex Data Streams с помощью Yandex Data Transfer
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse®
    • Загрузка данных из Yandex Managed Service for OpenSearch в Yandex Object Storage с помощью Yandex Data Transfer
    • Автоматическое копирование объектов из бакета в бакет
    • Регулярное асинхронное распознавание аудиофайлов в бакете
    • Обучение модели в Yandex DataSphere на данных из Object Storage
    • Подключение к Object Storage из VPC
    • Перенос данных в Yandex Managed Service for PostgreSQL с использованием Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for Greenplum® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Загрузка данных из Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Хостинг статического сайта на фреймворке Gatsby в Object Storage
    • Миграция базы данных из Managed Service for PostgreSQL в Object Storage
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Processing с помощью Sqoop
    • Импорт данных из Yandex Managed Service for MySQL® в Yandex Data Processing с помощью Sqoop
    • Миграция данных из Yandex Object Storage в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL® в Yandex Object Storage
    • Выгрузка данных Greenplum® в холодное хранилище Yandex Object Storage
    • Загрузка данных из Яндекс Директ в витрину Yandex Managed Service for ClickHouse® с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Миграция данных из Elasticsearch в Yandex Managed Service for OpenSearch
    • Загрузка состояний Terraform в Object Storage
    • Блокировка состояний Terraform с помощью Managed Service for YDB
    • Визуализация данных Yandex Query
    • Публикация обновлений для игр
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veeam Backup
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Резервное копирование кластера Managed Service for Kubernetes в Object Storage
    • Разработка пользовательской интеграции в API Gateway
    • Сокращатель ссылок
    • Хранение журналов работы приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Telegram-бота
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Загрузка аудитных логов в SIEM ArcSight
    • Загрузка аудитных логов в SIEM Splunk
    • Создание сервера MLFlow для логирования экспериментов и артефактов
    • Работа с данными с помощью Yandex Query
    • Федеративные запросы к данным с помощью Query
    • Распознавание архива изображений в Vision OCR
    • Регулярное распознавание изображений и PDF-документов из бакета Object Storage
    • Конвертация видео в GIF на Python
    • Автоматизация задач с помощью Managed Service for Apache Airflow™
    • Обработка файлов детализации в сервисе Yandex Cloud Billing
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Поиск событий Yandex Cloud в Yandex Query
    • Поиск событий Yandex Cloud в Object Storage
    • Создание внешней таблицы на базе таблицы из бакета с помощью конфигурационного файла
    • Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
    • Интеграция Object Storage с Nextcloud
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Разверните Nextcloud в базовой конфигурации
  • Создайте и настройте облачную сеть
  • Создайте сервисный аккаунт и статический ключ доступа
  • Создайте бакет Object Storage
  • Создайте виртуальную машину
  • Создайте кластер Managed Service for MySQL®
  • Установите и настройте Nextcloud на виртуальной машине
  • Протестируйте работу решения в базовой конфигурации
  • Разверните Nextcloud в отказоустойчивой конфигурации
  • Масштабируйте кластер Managed Service for MySQL®
  • Донастройте Nextcloud и создайте снимок диска виртуальной машины
  • Добавьте TLS-сертификат в Yandex Certificate Manager
  • Разверните группу виртуальных машин
  • Создайте L7-балансировщик
  • Создайте ресурсную A-запись в публичной зоне DNS вашего домена
  • Протестируйте работу решения в отказоустойчивой конфигурации
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Интеграция Object Storage с Nextcloud

Интеграция Yandex Object Storage с Nextcloud

Статья создана
Yandex Cloud
Обновлена 18 июня 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Разверните Nextcloud в базовой конфигурации
    • Создайте и настройте облачную сеть
    • Создайте сервисный аккаунт и статический ключ доступа
    • Создайте бакет Object Storage
    • Создайте виртуальную машину
    • Создайте кластер Managed Service for MySQL®
    • Установите и настройте Nextcloud на виртуальной машине
    • Протестируйте работу решения в базовой конфигурации
  • Разверните Nextcloud в отказоустойчивой конфигурации
    • Масштабируйте кластер Managed Service for MySQL®
    • Донастройте Nextcloud и создайте снимок диска виртуальной машины
    • Добавьте TLS-сертификат в Yandex Certificate Manager
    • Разверните группу виртуальных машин
    • Создайте L7-балансировщик
    • Создайте ресурсную A-запись в публичной зоне DNS вашего домена
    • Протестируйте работу решения в отказоустойчивой конфигурации
  • Как удалить созданные ресурсы

Nextcloud — это программное решение с открытым исходным кодом, позволяющее удобно, гибко и безопасно управлять файлами, обмениваться ими и совместно работать над документами. Nextcloud позволяет как создавать собственные облачные хранилища, так и интегрировать готовые решения, например, Yandex Object Storage.

В этом руководстве вы подключите бакет Object Storage к решению Nextcloud, развернутому на виртуальной машине Yandex Compute Cloud с базой данных в кластере Yandex Managed Service for MySQL®. Для обеспечения отказоустойчивости и избыточности создаваемой под Nextcloud инфраструктуры вы масштабируете Nextcloud на группу виртуальных машин с распределением нагрузки при помощи L7-балансировщика Yandex Application Load Balancer. В отказоустойчивой конфигурации Nextcloud будет доступен по доменному имени, для которого в Yandex Certificate Manager будет выпущен TLS-сертификат.

Примечание

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

Чтобы развернуть Nextcloud в Yandex Cloud с интеграцией бакета Object Storage:

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

  2. Разверните Nextcloud в базовой конфигурации:

    1. Создайте и настройте облачную сеть.
    2. Создайте сервисный аккаунт и статический ключ доступа.
    3. Создайте бакет Object Storage.
    4. Создайте виртуальную машину.
    5. Создайте кластер Managed Service for MySQL®.
    6. Установите и настройте Nextcloud на виртуальной машине.
    7. Протестируйте работу решения в базовой конфигурации.
  3. Разверните Nextcloud в отказоустойчивой конфигурации:

    1. Масштабируйте кластер Managed Service for MySQL®.
    2. Донастройте Nextcloud и создайте снимок диска виртуальной машины.
    3. Добавьте TLS-сертификат в Yandex Certificate Manager.
    4. Разверните группу виртуальных машин.
    5. Создайте L7-балансировщик.
    6. Создайте ресурсную A-запись в публичной зоне DNS вашего домена.
    7. Протестируйте работу решения в отказоустойчивой конфигурации.

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

Перед началом работыПеред началом работы

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

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

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

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

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

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

  • плата за диски, снимки дисков и постоянно запущенные ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование публичных IP-адресов и NAT-шлюзов (см. тарифы Yandex Virtual Private Cloud);
  • плата за хранение данных в Object Storage и операции с ними (см. тарифы Yandex Object Storage);
  • плата за использование управляемой БД MySQL® (см. тарифы Managed Service for MySQL®);
  • при использовании Yandex Cloud DNS плата за DNS-зоны и публичные DNS-запросы (см. тарифы Cloud DNS);
  • при использовании балансировщика нагрузки плата за количество ресурсных единиц L7-балансировщика (см. тарифы Yandex Application Load Balancer);
  • при использовании лог-группы для записи логов балансировщика плата за запись и хранение данных (см. тарифы Yandex Cloud Logging).

Разверните Nextcloud в базовой конфигурацииРазверните Nextcloud в базовой конфигурации

Базовая конфигурация Nextcloud будет развернута на одной виртуальной машине, при этом служебная база данных Nextcloud будет создана в кластере Managed Service for MySQL® с одним хостом или непосредственно на ВМ с развернутым Nextcloud.

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

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

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы будете создавать инфраструктуру.
    2. В списке сервисов выберите Virtual Private Cloud.
    3. В правом верхнем углу нажмите Создать сеть.
    4. В поле Имя укажите имя сети nextcloud-network.
    5. Убедитесь, что опция Создать подсети включена, и нажмите Создать сеть.
  2. Создайте группу безопасности, разрешающую необходимый для работы инфраструктуры Nextcloud трафик:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Virtual Private Cloud.

    3. На панели слева выберите Группы безопасности.

    4. Нажмите Создать группу безопасности.

    5. В поле Имя укажите имя nextcloud-sg.

    6. В поле Сеть выберите созданную ранее сеть nextcloud-network.

    7. В блоке Правила создайте следующие правила для управления трафиком:

      Направление
      трафика
      Описание Диапазон портов Протокол Источник /
      Назначение
      CIDR блоки /
      Группа безопасности
      Входящий http 80 TCP CIDR 0.0.0.0/0
      Входящий https 443 TCP CIDR 0.0.0.0/0
      Входящий ssh 22 TCP CIDR 0.0.0.0/0
      Входящий self Весь Любой Группа безопасности Текущая
      Входящий healthchecks Весь Любой Проверки состояния балансировщика –
      Исходящий any Весь Любой CIDR 0.0.0.0/0
    8. Нажмите Создать.

  3. Создайте NAT-шлюз:

    Для доступа к бакетам Object Storage виртуальным машинам необходим доступ в интернет. Чтобы не назначать виртуальным машинам группы ВМ публичные IP-адреса, вы настроите для них доступ в интернет с помощью NAT-шлюза.

    Примечание

    Вы также можете настроить доступ ВМ к бакету с помощью сервисных подключений.

    Эта функциональность находится на стадии Preview.

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.
    2. В списке сервисов выберите Virtual Private Cloud.
    3. На панели слева выберите Шлюзы и нажмите кнопку Создать шлюз.
    4. В поле Имя задайте имя шлюза nextcloud-gateway.
    5. В поле Тип выберите NAT-шлюз и нажмите кнопку Сохранить.
  4. Создайте таблицу маршрутизации:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Virtual Private Cloud.

    3. На панели слева выберите Таблицы маршрутизации и нажмите кнопку Создать таблицу маршрутизации.

    4. В поле Имя задайте имя nextcloud-rt-table.

    5. В поле Cеть выберите сеть nextcloud-network.

    6. Нажмите кнопку Добавить маршрут и в открывшемся окне:

      1. В поле Next hop выберите Шлюз.
      2. В поле Шлюз выберите созданный NAT-шлюз. Префикс назначения заполнится автоматически.
      3. Нажмите кнопку Добавить.
    7. Нажмите кнопку Создать таблицу маршрутизации.

  5. Привяжите таблицу маршрутизации ко всем подсетям облачной сети nextcloud-network, чтобы направить трафик из них через NAT-шлюз:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.
    2. В списке сервисов выберите Virtual Private Cloud.
    3. На панели слева выберите Подсети.
    4. В строке с нужной подсетью нажмите кнопку и в контекстном меню выберите пункт Привязать таблицу маршрутизации.
    5. В открывшемся окне выберите созданную на предыдущем шаге таблицу маршрутизации и нажмите кнопку Привязать.

    Убедитесь, что в списке для каждой подсети в поле Таблица маршрутизации отображается имя привязанной к ней таблицы маршрутизации.

Создайте сервисный аккаунт и статический ключ доступаСоздайте сервисный аккаунт и статический ключ доступа

Чтобы обеспечить доступ из Nextcloud к бакету Object Storage, создайте сервисный аккаунт и статический ключ доступа.

  1. Создайте сервисный аккаунт:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.
    2. В списке сервисов выберите Identity and Access Management.
    3. Нажмите кнопку Создать сервисный аккаунт.
    4. Укажите имя сервисного аккаунта — nextcloud-sa.
    5. Нажмите кнопку Добавить роль и выберите роль editor.
    6. Нажмите кнопку Создать.
  2. Создайте статический ключ доступа:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Identity and Access Management.

    3. На панели слева выберите Сервисные аккаунты и выберите созданный ранее сервисный аккаунт nextcloud-sa.

    4. На панели сверху нажмите кнопку Создать новый ключ и выберите Создать статический ключ доступа.

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

    6. Сохраните идентификатор и секретный ключ.

      Внимание

      После закрытия диалога значение ключа будет недоступно.

Создайте бакет Object StorageСоздайте бакет Object Storage

Создайте бакет Object Storage, который вы будете подключать к Nextcloud:

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.
  2. В списке сервисов выберите Object Storage.
  3. Справа сверху нажмите Создать бакет.
  4. В поле Имя укажите имя бакета. Например: my-nextcloud-bucket. Имя бакета должно быть уникальным в пределах Yandex Object Storage.
  5. В поле Макс. размер задайте нужный размер бакета или включите опцию Без ограничения.
  6. Значения остальных параметров оставьте без изменений и нажмите Создать бакет.

Создайте виртуальную машинуСоздайте виртуальную машину

Создайте виртуальную машину, на которой будет развернут Nextcloud:

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Compute Cloud.

  3. На панели слева выберите Виртуальные машины и нажмите кнопку Создать виртуальную машину.

  4. В блоке Образ загрузочного диска в поле Поиск продукта введите Ubuntu 24.04 LTS и выберите публичный образ Ubuntu 24.04 LTS.

  5. В блоке Расположение выберите зону доступности ru-central1-a.

  6. В блоке Вычислительные ресурсы выберите конфигурацию 2 vCPU 4 ГБ RAM.

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

    • В поле Подсеть выберите сеть nextcloud-network и подсеть в зоне доступности виртуальной машины — nextcloud-network-ru-central1-a.
    • В поле Публичный IP-адрес оставьте значение Автоматически, чтобы назначить ВМ случайный публичный IP-адрес из пула Yandex Cloud.
    • В поле Группы безопасности выберите группу безопасности nextcloud-sg.
  8. В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа к ВМ:

    • В поле Логин введите имя пользователя, например: yc-user. Не используйте имя root или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.
    • В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

      Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

      • Нажмите кнопку Добавить ключ.
      • Задайте имя SSH-ключа.
      • Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
      • Нажмите кнопку Добавить.

      SSH-ключ будет добавлен в ваш профиль пользователя организации.

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

  9. В блоке Общая информация задайте имя ВМ: nextcloud-vm.

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

Создайте кластер Managed Service for MySQL®Создайте кластер Managed Service for MySQL®

Nextcloud использует базу данных MySQL® для хранения служебной информации. В этом руководстве база данных для Nextcloud развернута в кластере Yandex Managed Service for MySQL®.

Примечание

База данных MySQL® может быть создана на том же хосте, что и Nextcloud, но это менее надежно и не подходит для развертывания отказоустойчивой конфигурации. Если вы не планируете развертывать отказоустойчивую конфигурацию, вы можете пропустить этап создания кластера и позднее создать базу данных на одном хосте с Nextcloud.

Чтобы создать кластер Managed Service for MySQL®:

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Managed Service for MySQL и нажмите кнопку Создать кластер.

  3. В поле Имя кластера введите имя nextcloud-db-cluster.

  4. В блоке База данных:

    • В поле Имя БД введите nextcloud.
    • В поле Имя пользователя введите user.
    • В поле Пароль выберите Ввести вручную и введите пароль, который вы будете использовать для доступа к БД.
  5. В блоке Сетевые настройки выберите сеть nextcloud-network и группу безопасности nextcloud-sg.

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

    Примечание

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

  7. В блоке Настройки СУБД нажмите кнопку Настроить и в открывшемся окне:

    1. В поле character_set_server выберите значение utf8mb4.
    2. В поле collation_server выберите значение utf8mb4_general_ci.
    3. Значения остальных параметров оставьте без изменения и нажмите кнопку Сохранить.
  8. Нажмите кнопку Создать кластер.

Создание кластера может занять несколько минут.

Установите и настройте Nextcloud на виртуальной машинеУстановите и настройте Nextcloud на виртуальной машине

  1. Установите Nextcloud на виртуальную машину nextcloud-vm:

    1. Подключитесь к виртуальной машине nextcloud-vm по SSH. Все последующие действия этого шага будут выполняться в терминале виртуальной машины.

    2. Обновите версии пакетов, установленные на ВМ:

      sudo apt update && sudo apt upgrade
      
    3. Установите необходимые пакеты программного обеспечения и зависимости:

      sudo apt install \
        apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring \
        php-intl php-gmp php-bcmath php-xml php-imagick php-zip php-fpm unzip
      
    4. (Опционально) Если вы хотите создать базу данных на одном хосте с Nextcloud:

      Если вы не создавали кластер MySQL® и не планируете развертывать отказоустойчивое решение:
      1. Запустите MySQL:

        sudo mysql
        
      2. Выполните команды, чтобы создать базу данных и пользователя, а также выдать пользователю необходимые для работы с базой данных права:

        CREATE USER 'user'@'localhost' IDENTIFIED BY '<пароль>';
        CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
        GRANT ALL PRIVILEGES ON nextcloud.* TO 'user'@'localhost';
        FLUSH PRIVILEGES;
        quit;
        

        Где <пароль> — пароль, который вы будете использовать для доступа к БД.

    5. Скачайте архив с последней версией Nextcloud:

      wget https://download.nextcloud.com/server/releases/latest.zip
      
    6. Распакуйте скачанный архив в директорию /var/www:

      sudo unzip latest.zip -d /var/www
      
    7. Измените права доступа к директории с Nextcloud:

      sudo chown -R www-data:www-data /var/www/nextcloud
      sudo chmod -R 755 /var/www/nextcloud/
      
    8. Настройте виртуальный хост по умолчанию:

      1. Откройте файл конфигурации виртуального хоста по умолчанию:

        sudo nano /etc/apache2/sites-available/000-default.conf
        
      2. Замените содержимое открытого файла конфигурации 000-default.conf на следующее:

        <VirtualHost *:80>
        DocumentRoot /var/www/nextcloud/
        
        <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
        
        <IfModule mod_dav.c>
        Dav off
        </IfModule>
        </Directory>
        </VirtualHost>
        
    9. Включите необходимые модули веб-сервера Apache:

      sudo a2enmod rewrite
      sudo a2enmod headers
      a2enmod env
      a2enmod dir
      a2enmod mime
      
    10. Увеличьте до 512 МБ объем оперативной памяти, доступной интерпретатору PHP при обработке запросов к Nextcloud:

      1. Откройте файл .htaccess в директории установки Nextcloud:

        sudo nano /var/www/nextcloud/.htaccess
        
      2. В конце открытого файла добавьте строку:

        php_value memory_limit 512M
        

        Не забудьте сохранить внесенные изменения.

    11. Перезапустите веб-сервер:

      sudo systemctl restart apache2
      
  2. Настройте Nextcloud в графическом пользовательском интерфейсе:

    1. На вашем локальном компьютере откройте браузер и в адресной строке введите:

      http://<публичный_IP-адрес_ВМ>
      

      Узнать публичный IP-адрес виртуальной машины вы можете в консоли управления на странице с информацией о ВМ в блоке Сеть в поле Публичный IPv4-адрес.

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

      1. В полях Новое имя учетной записи администратора и Новый пароль администратора задайте учетные данные администратора Nextcloud, которые вы будете использовать для входа в систему.

      2. В поле Учётная запись базы данных введите user — имя пользователя БД, которое вы задали при создании кластера MySQL® или локальной базы данных.

      3. В поле Пароль базы данных введите пароль пользователя БД, который вы задали при создании кластера MySQL® или локальной базы данных.

      4. В поле Имя базы данных введите nextcloud — имя БД, которое вы задали при создании кластера MySQL® или локальной базы данных.

      5. В поле Хост базы данных укажите FQDN текущего хост-мастера кластера и порт в формате:

        c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:3306
        

        Узнать идентификатор кластера вы можете в консоли управления на странице с информацией о кластере в поле Идентификатор.

        Примечание

        Если вы не будете развертывать отказоустойчивое решение, не создавали кластер MySQL®, а вместо этого создали базу данных на виртуальной машине nextcloud-vm, оставьте в поле Хост базы данных значение localhost.

      6. Нажмите кнопку Установить.

        Начнется развертывание базы данных Nextcloud в кластере MySQL®. Дождитесь завершения этого процесса.

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

    4. Закройте открывшееся окно с информацией об обновлениях в текущей версии Nextcloud.

    5. Откройте меню управления приложениями. Для этого в правом верхнем углу экрана нажмите на значок пользователя и в открывшемся контекстном меню выберите Приложения.

    6. В открывшемся окне на панели слева выберите Ваши приложения.

    7. В открывшемся списке найдите приложение External storage support и в строке с этим приложением нажмите кнопку Включить.

      При необходимости для подтверждения действия во всплывающем окне введите ваш пароль администратора Nextcloud.

    8. Откройте основное меню настроек. Для этого в правом верхнем углу экрана нажмите на значок пользователя и в открывшемся контекстном меню выберите Параметры сервера.

    9. В открывшемся окне на панели слева в блоке Параметры сервера выберите Внешнее хранилище и в открывшемся окне в блоке Внешнее хранилище задайте настройки интеграции с Object Storage:

      1. В секции Внешнее хранилище выберите Amazon S3.

      2. В секции Способ авторизации выберите Ключ доступа.

      3. В секции Конфигурация:

        • В поле Корзина укажите имя созданного ранее бакета. Например: my-nextcloud-bucket.
        • В поле Имя хоста укажите storage.yandexcloud.net.
        • В поле Порт укажите 443.
        • В поле Ключ доступа вставьте идентификатор созданного ранее статического ключа доступа.
        • В поле Секретный ключ вставьте секретный ключ созданного ранее статического ключа доступа.
      4. В секции Доступно для включите опцию Все люди.

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

        Для подтверждения действия во всплывающем окне введите ваш пароль администратора Nextcloud.

Протестируйте работу решения в базовой конфигурацииПротестируйте работу решения в базовой конфигурации

Чтобы проверить работу интеграции Yandex Object Storage с Nextcloud на одном хосте:

  1. На вашем локальном компьютере откройте браузер и в адресной строке введите публичный IPv4-адрес виртуальной машины, на которой развернут Nextcloud:

    http://<публичный_IP-адрес_ВМ>
    
  2. Аутентифицируйтесь в Nextcloud с помощью логина и пароля, созданных при настройке решения на предыдущем этапе.

  3. В левой части верхнего меню выберите Файлы.

  4. В меню слева выберите Внешнее хранилище и выберите AmazonS3.

  5. Нажмите Новый и выберите Загрузить файлы, чтобы загрузить в хранилище файл с локального компьютера.

  6. Выберите файл на локальном компьютере и загрузите его в хранилище.

    Загруженный файл отобразится в хранилище AmazonS3 Nextcloud.

  7. В сервисе Yandex Object Storage убедитесь, что файл был загружен в бакет.

На этом завершено развертывание базовой конфигурации Nextcloud. Если в базовой конфигурации вы использовали кластер MySQL®, теперь вы можете перейти к развертыванию отказоустойчивой конфигурации.

Разверните Nextcloud в отказоустойчивой конфигурацииРазверните Nextcloud в отказоустойчивой конфигурации

Отказоустойчивая конфигурация Nextcloud будет развернута в группе из трех виртуальных машин, при этом нагрузка на хосты Nextcloud будет распределяться с помощью L7-балансировщика Yandex Application Load Balancer. Служебная база данных будет расположена в кластере MySQL®, состоящем из трех хостов. Хосты группы ВМ, балансировщика и кластера MySQL® будут равномерно распределены по трем зонам доступности. Nextcloud будет доступен по доменному имени, для которого в Certificate Manager будет выпущен TLS-сертификат.

Масштабируйте кластер Managed Service for MySQL®Масштабируйте кластер Managed Service for MySQL®

Чтобы добавить дополнительные хосты в кластер Managed Service for MySQL®:

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Managed Service for MySQL и выберите кластер nextcloud-db-cluster.

  3. В меню слева выберите Хосты.

  4. С помощью кнопки Создать хост добавьте дополнительные хосты, так чтобы в кластере было три хоста — по одному в каждой зоне доступности.

    При создании хостов не включайте опцию Публичный доступ.

    Важно

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

Донастройте Nextcloud и создайте снимок диска виртуальной машиныДонастройте Nextcloud и создайте снимок диска виртуальной машины

Прежде чем создавать снимок виртуальной машины для последующего развертывания группы ВМ, добавьте ваш домен в список доверенных адресов и доменов Nextcloud:

  1. Подключитесь к виртуальной машине nextcloud-vm по SSH.

  2. Добавьте ваш домен в массив доверенных адресов и доменов Nextcloud:

    1. В терминале ВМ откройте файл конфигурации Nextcloud:

      sudo nano /var/www/nextcloud/config/config.php
      
    2. В массиве trusted_domains замените IP-адрес хоста на имя вашего домена.

      Например:

      'trusted_domains' =>
      array (
        0 => 'example.com',
      ),
      

      Массив значений trusted_domains позволяет задать ограничение на IP-адреса и/или домены, по которым вы можете обращаться к Nextcloud, и обеспечивает дополнительную защиту от несанкционированного доступа. Вы можете указать несколько адресов и/или доменов, а также ослабить или снять это ограничение с помощью символов подстановки:

      Пример 1
      Пример 2
      'trusted_domains' =>
      array (
        0 => '*.example.com',
        1 => '198.168.*.*',
      ),
      

      В этом примере доступ разрешается с любых поддоменов домена example.com, а также с IP-адресов в диапазоне 192.168.0.0 — 192.168.255.255.

      'trusted_domains' =>
      array (
        0 => '*',
      ),
      

      В этом примере доступ разрешается с любых доменов и IP-адресов.

    3. Удалите строку 'overwrite.cli.url' => 'http://<IP-адрес_ВМ>',.

    4. Сохраните изменения и закройте редактор nano.

  3. Остановите виртуальную машину nextcloud-vm.

  4. После остановки ВМ создайте снимок диска виртуальной машины nextcloud-vm:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Compute Cloud.

    3. На панели слева выберите Диски.

    4. В строке с нужным диском нажмите значок и выберите Создать снимок.

    5. В поле Имя задайте имя снимка nextcloud-vm-snapshot.

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

    7. Дождитесь завершения процесса создания снимка.

      Чтобы отследить статус снимка, на панели слева выберите Снимки дисков.

Добавьте TLS-сертификат в Yandex Certificate ManagerДобавьте TLS-сертификат в Yandex Certificate Manager

Для того чтобы организовать доступ к Nextcloud по протоколу HTTPS, выпустите TLS-сертификат для вашего домена:

  1. Добавьте в сервис Certificate Manager сертификат от Let's Encrypt® для вашего домена:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.
    2. В списке сервисов выберите Certificate Manager.
    3. Нажмите Добавить сертификат и выберите Сертификат от Let's Encrypt.
    4. В открывшемся окне в поле Имя укажите mymanagedcert.
    5. В поле Домены укажите имя вашего домена, например example.com.
    6. В поле Тип проверки выберите DNS и нажмите кнопку Создать.

    В списке сертификатов появится новый сертификат со статусом Validating. Этот статус означает, что запрос на выпуск сертификата от Let's Encrypt® создан и для его успешной обработки вам необходимо пройти процедуру проверки прав на домены.

  2. Для успешного выпуска сертификата пройдите проверку прав на домены:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Certificate Manager.

    3. В списке сертификатов выберите mymanagedcert.

    4. В открывшемся окне в блоке Проверка прав на домены выберите CNAME-запись.

    5. Добавьте в публичную DNS-зону вашего домена CNAME-запись, необходимую для проверки прав на домен. Порядок действий на этом шаге будет зависеть от того, управляет вашим доменом сервис Yandex Cloud DNS или сторонний DNS-провайдер:

      Yandex Cloud DNS
      Сторонний DNS-провайдер

      В разделе Проверка прав на домены в блоке с типом записи CNAME нажмите кнопку Создать запись. В открывшемся окне:

      1. Если в текущем каталоге есть подходящая зона DNS, она будет автоматически подставлена в поле Зона. Если подходящей зоны DNS нет, нажмите Создать зону и задайте ее параметры, чтобы создать зону.
      2. Нажмите кнопку Создать.
      1. В разделе Проверка прав на домены, в блоке с типом записи CNAME, в поле Значение посмотрите значение записи для домена.

      2. Разместите у своего DNS-провайдера или на собственном DNS-сервере CNAME-запись для делегирования прав управления на DNS-зону, используемую для проверки:

        _acme-challenge.example.com CNAME <значение>
        

        Строка <значение> формируется по шаблону <идентификатор_сертификата>.cm.yandexcloud.net.

      Примечание

      Чтобы DNS-проверка прав на домен по записи CNAME прошла успешно, для поддомена _acme-challenge проверяемого доменного имени не должно быть других ресурсных записей, кроме CNAME. Например, для имени _acme-challenge.example.com. должна существовать только CNAME-запись и не должно быть TXT-записи.

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

Разверните группу виртуальных машинРазверните группу виртуальных машин

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

Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Compute Cloud.

  3. На панели слева выберите Группы виртуальных машин.

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

  5. В поле Имя задайте имя группы nextcloud-instance-group.

  6. В поле Сервисный аккаунт выберите сервисный аккаунт nextcloud-sa.

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

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

    1. В блоке Образ загрузочного диска перейдите на вкладку Пользовательский и нажмите кнопку Выбрать.

      В открывшемся окне выберите созданный ранее снимок nextcloud-vm-snapshot и нажмите кнопку Добавить диск.

    2. В блоке Вычислительные ресурсы выберите конфигурацию 2 vCPU 4 ГБ RAM.

    3. В блоке Сетевые настройки:

      1. В поле Сеть выберите сеть nextcloud-network.
      2. В поле Публичный адрес выберите Без адреса.
      3. В поле Группы безопасности выберите nextcloud-sg.
    4. В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа к ВМ:

      • В поле Логин введите имя пользователя, например: yc-user. Не используйте имя root или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.
      • В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

        Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

        • Нажмите кнопку Добавить ключ.
        • Задайте имя SSH-ключа.
        • Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
        • Нажмите кнопку Добавить.

        SSH-ключ будет добавлен в ваш профиль пользователя организации.

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

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

  9. В блоке Масштабирование в поле Размер укажите 3.

  10. В блоке Интеграция с Application Load Balancer включите опцию Создать целевую группу и в появившемся поле Имя целевой группы укажите имя nextcloud-target-group.

  11. В блоке Проверка состояний:

    1. Включите опцию Активировать.
    2. В поле Тип выберите TCP.
  12. Нажмите кнопку Создать и дождитесь создания и запуска группы ВМ.

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

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

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

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Application Load Balancer.

    3. На панели слева выберите Группы бэкендов и нажмите кнопку Создать группу бэкендов.

    4. В поле Имя укажите имя группы nextcloud-bg.

    5. Включите опцию Привязка сессий и в появившемся поле Режим привязки выберите По IP-адресу.

    6. В блоке Бэкенды нажмите кнопку Добавить и в появившейся форме Новый бэкенд:

      1. В поле Имя задайте имя nextcloud-backend.
      2. В поле Целевые группы выберите созданную ранее целевую группу nextcloud-target-group.
      3. Разверните секцию Настройки балансировки и в поле Режим балансировки выберите MAGLEV_HASH.
      4. В секции HTTP проверка состояния нажмите кнопку и выберите Удалить.
    7. Нажмите кнопку Создать.

  2. Создайте HTTP-роутер:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Application Load Balancer.

    3. На панели слева выберите HTTP-роутеры и нажмите кнопку Создать HTTP-роутер.

    4. В поле Имя укажите имя HTTP-роутера nextcloud-router.

    5. В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост и в открывшейся форме Новый виртуальный хост:

      1. В поле Имя укажите имя виртуального хоста nextcloud-vh и нажмите кнопку Добавить маршрут.
      2. В открывшейся форме Новый маршрут в поле Имя задайте имя маршрута nextcloud-route.
      3. В поле Группа бэкендов выберите созданную на предыдущем шаге группу бэкендов nextcloud-bg.
      4. Значения остальных параметров оставьте без изменения и внизу страницы нажмите кнопку Создать.
  3. Создайте L7-балансировщик:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

    2. В списке сервисов выберите Application Load Balancer.

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

    4. В поле Имя укажите имя балансировщика nextcloud-alb.

    5. В поле Сеть выберите сеть nextcloud-network.

    6. В поле Группы безопасности выберите Из списка и в появившемся списке выберите группу безопасности nextcloud-sg.

    7. В блоке Размещение убедитесь, что выбраны все зоны доступности.

    8. Если вы не хотите сохранять логи работы балансировщика в лог-группу, отключите опцию Запись логов.

    9. В секции Обработчики нажмите кнопку Добавить обработчик и в открывшейся форме:

      1. В поле Имя укажите имя обработчика nextcloud-listener.
      2. В поле Протокол выберите HTTPS.
      3. В поле Сертификаты выберите созданный ранее сертификат mymanagedcert.
      4. В поле HTTP-роутер выберите созданный ранее HTTP-роутер nextcloud-router.
    10. Значения остальных параметров оставьте без изменения и внизу страницы нажмите кнопку Создать.

    Дождитесь, когда статус балансировщика изменится на Active, и в поле IP-адреса скопируйте его IP-адрес.

Создайте ресурсную A-запись в публичной зоне DNS вашего доменаСоздайте ресурсную A-запись в публичной зоне DNS вашего домена

Для того чтобы запросы, поступающие к вашему домену, направлялись на L7-балансировщик, создайте в вашей зоне DNS ресурсную A-запись, указывающую на полученный на предыдущем шаге IP-адрес балансировщика. Порядок действий на этом шаге будет зависеть от того, управляет вашим доменом сервис Yandex Cloud DNS или сторонний DNS-провайдер.

Если вашим доменом управляет сервис Yandex Cloud DNS
Консоль управления
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Cloud DNS.

  3. Выберите нужную зону DNS, нажмите кнопку Создать запись и в открывшемся окне:

    1. В поле Имя выберите Совпадает с именем зоны (@).
    2. В поле Тип выберите A.
    3. В поле Значение укажите сохраненный на предыдущем шаге IP-адрес балансировщика нагрузки.
    4. Значения других параметров оставьте без изменения и нажмите кнопку Создать.
Если вашим доменом управляет сторонний DNS-провайдер

Разместите у своего DNS-провайдера или на собственном DNS-сервере ресурсную A-запись со следующими значениями:

  • Хост — @.
  • Тип — A.
  • Значение — <IP-адрес_балансировщика>.

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

Чтобы проверить работу интеграции Yandex Object Storage с Nextcloud в отказоустойчивой конфигурации:

  1. На вашем локальном компьютере откройте браузер и в адресной строке введите имя вашего домена, например:

    https://example.com
    
  2. Аутентифицируйтесь в Nextcloud с помощью логина и пароля, созданных при настройке решения.

  3. В левой части верхнего меню выберите Файлы.

  4. В меню слева выберите Внешнее хранилище и выберите AmazonS3.

  5. Убедитесь, что вы видите загруженный на предыдущем этапе проверки файл.

  6. Скачайте загруженный ранее файл. Для этого в строке с именем файла нажмите значок и выберите Скачать.

  7. Удалите файл. Для этого в строке с именем файла нажмите значок и выберите Удалить файл.

  8. В сервисе Yandex Object Storage убедитесь, что файл был удален из бакета.

Как удалить созданные ресурсыКак удалить созданные ресурсы

  1. Если вы создавали L7-балансировщик, удалите его, затем последовательно удалите HTTP-роутер, группу бэкендов и целевую группу балансировщика.
  2. Если вы создавали группу ВМ, удалите ее.
  3. Если вы создавали ресурсные записи, удалите их в Yandex Cloud DNS или в личном кабинете вашего регистратора доменных имен.
  4. Если вы создавали зону DNS, удалите ее в в Yandex Cloud DNS или в личном кабинете вашего регистратора доменных имен.
  5. Если вы оставляли включенной опцию записи логов L7-балансировщика, удалите лог-группу.
  6. Удалите виртуальную машину.
  7. Удалите кластер БД MySQL®.
  8. Удалите созданные в бакете объекты, затем удалите сам бакет.
  9. Удалите снимок диска.
  10. Удалите сервисный аккаунт.
  11. Последовательно удалите подсети, группу безопасности, таблицу маршрутизации, NAT-шлюз и облачную сеть.
  12. При необходимости удалите TLS-сертификат, если вы создавали его.

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

Предыдущая
Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
Следующая
Обзор
Проект Яндекса
© 2025 ООО «Яндекс.Облако»