ms_cdn
Описание
Модуль CDN Beget предоставляет возможность подключения CDN-сервера Beget для ускорения загрузки статических ресурсов сайта. Модуль интегрируется с системой CDN CS-Cart и позволяет переключаться между различными CDN-провайдерами (Beget и Amazon CloudFront).
Функциональность
- Подключение CDN Beget для хостинга статических файлов
- Переключение между CDN-провайдерами (Beget и CloudFront)
- Автоматическое обновление конфигурации в
config.local.php - Управление CDN-бэкендом через админ-панель
- Валидация данных для выбранного провайдера
- Миграции базы данных при установке/обновлении
Принцип работы
Модуль работает через систему CDN CS-Cart:
- Установка модуля:
- Выполняет миграции базы данных через
fn_ms_cdn_execute_migrations() - Обновляет конфигурацию CDN-бэкенда
- Управление CDN-бэкендом:
- Функция
fn_ms_cdn_update_config_backend()- обновляет бэкенд в конфигурации - Функция
fn_ms_cdn_write_backend_to_config()- записывает настройки вconfig.local.php - Функция
fn_ms_cdn_set_runtime_backend()- обновляет runtime-конфигурацию - Функция
fn_ms_cdn_reset_cdn_instance()- сбрасывает кэшированный экземпляр CDN
- Валидация данных:
- Функция
fn_ms_cdn_validate_backend_payload()- проверяет обязательные поля: - Для Beget: требуется
host(CDN URL) - Для CloudFront: требуются
keyиsecret(ключи доступа)
- Хук
update_addon_status_post- при отключении модуля:
- Автоматически переключает CDN-бэкенд обратно на CloudFront
- Обновляет конфигурацию в
config.local.php
- Класс
Tygh\Backend\Cdn\Beget- реализация бэкенда для Beget CDN
- Миграции - выполняются при установке модуля для обновления структуры базы данных
Расположение в админке
Настройки CDN:
- Администрирование → Хранилище → CDN - настройка CDN-провайдера и параметров подключения
Настройки модуля:
- Модуль не имеет отдельных настроек, работает через стандартные настройки CDN CS-Cart
Важные замечания
- Модуль требует прав на запись в файл
config.local.php - При отключении модуля автоматически переключается на CloudFront
- Для работы с Beget требуется указать CDN URL (host)
- Для работы с CloudFront требуются ключи доступа (key и secret)
- Модуль использует систему миграций для обновления структуры базы данных
- Изменения в конфигурации применяются сразу после сохранения
- English
- Русский
# Инструкция по использованию модуля ms_cdn
Установка
- Установите модуль через раздел Модули → Скачанные модули
- Активируйте модуль CDN Beget
- При установке модуль автоматически выполнит миграции базы данных
Настройка
Настройка CDN Beget
- Перейдите в Администрирование → Хранилище → CDN
- Выберите провайдера Beget в настройках CDN
- Укажите CDN URL (host) для Beget:
- Пример:
https://cdn.example.com - URL должен быть доступен и настроен в панели управления Beget
- Сохраните настройки
Важно: Убедитесь, что:
- У вас есть активный аккаунт Beget с настроенным CDN
- CDN URL корректно настроен и доступен
- Файл
config.local.phpимеет права на запись
Настройка Amazon CloudFront (альтернатива)
Если необходимо переключиться обратно на CloudFront:
- Перейдите в Администрирование → Хранилище → CDN
- Выберите провайдера CloudFront
- Укажите Access Key ID и Secret Access Key
- Сохраните настройки
Проверка конфигурации
После сохранения настроек проверьте файл config.local.php:
`php
// CDN server backend
$config['cdn_backend'] = 'beget'; // или 'cloudfront'
`
Использование
После настройки CDN все статические ресурсы сайта (изображения, CSS, JavaScript) будут автоматически загружаться через выбранный CDN-провайдер.
Переключение между провайдерами
- Перейдите в Администрирование → Хранилище → CDN
- Выберите нужного провайдера (Beget или CloudFront)
- Заполните соответствующие поля
- Сохраните настройки
- Модуль автоматически обновит конфигурацию
Отключение модуля
При отключении модуля:
- CDN автоматически переключится на CloudFront
- Конфигурация в
config.local.phpбудет обновлена - Все настройки Beget будут сохранены, но не будут использоваться
Импорт/Экспорт
Модуль не поддерживает импорт/экспорт данных. Настройки CDN хранятся в конфигурационных файлах и базе данных CS-Cart.
Тестирование
- Настройте CDN Beget с корректным URL
- Сохраните настройки
- Проверьте файл
config.local.php- должна быть строка сcdn_backend = 'beget' - Откройте сайт и проверьте загрузку статических ресурсов через CDN:
- Откройте инструменты разработчика браузера (F12)
- Перейдите на вкладку Network
- Проверьте, что изображения, CSS и JS загружаются с CDN URL
- Проверьте переключение на CloudFront и обратно
- Проверьте отключение модуля - должен автоматически переключиться на CloudFront
Обслуживание
Обновление модуля
- Обновление модуля выполняется стандартным способом через раздел Модули → Скачанные модули
- При обновлении модуль может выполнить дополнительные миграции базы данных
- Проверьте, что конфигурация CDN не изменилась после обновления
Удаление модуля
При удалении модуля:
- CDN автоматически переключится на CloudFront
- Конфигурация в
config.local.phpбудет обновлена - Все миграции базы данных останутся (не откатываются автоматически)
Решение проблем
Проблема: CDN не работает после настройки
- Проверьте права на запись в файл
config.local.php - Проверьте корректность CDN URL
- Проверьте доступность CDN-сервера
Проблема: Ошибка при сохранении настроек
- Убедитесь, что указаны все обязательные поля
- Для Beget требуется только
host - Для CloudFront требуются
keyиsecret
Проблема: Статические файлы не загружаются через CDN
- Проверьте настройки CDN в панели управления Beget
- Проверьте CORS-настройки на CDN-сервере
- Проверьте кэш браузера
Ключевые файлы
func.php- основные функции модуля (установка, обновление конфигурации, валидация)hooks.func.php- обработка отключения модуляTygh/Backend/Cdn/Beget.php- реализация бэкенда для Beget CDNcontrollers/backend/storage.pre.php- обработка настроек хранилищаupgrades/migrations/- файлы миграций базы данныхaddon.xml- конфигурация модуляvar/langs/ru/addons/ms_cdn.po- языковые файлы
**v1.0.0** от 20.11.2025 [+] Первое издание *** [+] Добавлено [-] Удалено [\*] Изменено [!] Исправлена ошибка
Здесь можно поделиться своим мнением и оценить нашу работу.
Ваши отзывы помогают нам стать лучше и предлагать вам еще более качественный сервис.