Настройка CDN (Selectel CDN) для сайта

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка CDN (Selectel CDN) для сайта
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Настройка Selectel CDN

Selectel CDN — российский провайдер с точками присутствия в Москве, Санкт-Петербурге и Амстердаме. Оптимален для проектов с российской аудиторией, работает в связке с облачным хранилищем Selectel Object Storage (совместимым с S3 API).

Подключение CDN

  1. В панели Selectel → CDN → Создать ресурс
  2. Указать origin-сервер (URL вашего сайта)
  3. Получить CNAME вида resource-id.cdn.selectel.ru
  4. Добавить DNS-запись: cdn.example.ru → resource-id.cdn.selectel.ru

Или через API:

curl -X POST \
    -H "X-Auth-Token: $SELECTEL_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
        "name": "example-assets",
        "origin_protocol": "HTTPS",
        "origins": [{"source": "example.ru", "backup": false}],
        "options": {
            "edge_cache_settings": {"enabled": true, "value": "2592000"},
            "browser_cache_settings": {"enabled": true, "value": "31536000"},
            "gzip_on": {"enabled": true, "value": true},
            "force_https": {"enabled": true, "value": true}
        }
    }' \
    https://api.selectel.ru/cdn/resources/

Object Storage как CDN-origin

# Создать публичный контейнер в Object Storage
# S3-совместимый API

aws s3 mb s3://example-assets \
    --endpoint-url https://s3.selcdn.ru

# Загрузить файлы
aws s3 sync ./public/assets s3://example-assets/assets/ \
    --endpoint-url https://s3.selcdn.ru \
    --cache-control "public, max-age=31536000, immutable" \
    --content-encoding gzip

Интеграция с Laravel (S3 + CDN)

// config/filesystems.php
'selectel' => [
    'driver'   => 's3',
    'key'      => env('SELECTEL_KEY'),
    'secret'   => env('SELECTEL_SECRET'),
    'region'   => 'ru-1',
    'bucket'   => env('SELECTEL_BUCKET'),
    'endpoint' => 'https://s3.selcdn.ru',
    'url'      => env('CDN_URL'), // https://cdn.example.ru
    'use_path_style_endpoint' => false,
],
// Загрузка медиафайла через CDN
Storage::disk('selectel')->put(
    'images/' . $filename,
    $file->getContent(),
    [
        'visibility'   => 'public',
        'CacheControl' => 'public, max-age=31536000',
        'ContentType'  => $file->getMimeType(),
    ]
);

$publicUrl = Storage::disk('selectel')->url('images/' . $filename);
// Вернёт: https://cdn.example.ru/images/filename.webp

Инвалидация кеша

Http::withHeaders(['X-Auth-Token' => config('services.selectel.token')])
    ->delete("https://api.selectel.ru/cdn/resources/{$resourceId}/cache", [
        'paths' => ['/images/updated-image.webp'],
    ]);

Настройки безопасности

  • Referer validation — разрешить раздачу только для вашего домена (защита от hotlinking)
  • Token-based URL authentication — подписанные URL для защищённых файлов

Срок настройки: несколько часов для подключения CNAME и настройки Object Storage.