Налаштування CDN (Fastly) для сайту

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування CDN (Fastly) для сайту
Складна
~2-3 робочих дні
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування Fastly CDN

Fastly — CDN з акцентом на мгновенну інвалідацію кеша (< 150 мс по всій мережі) та програмовану логіку на edge через VCL та Compute@Edge (WASM). Використовується коли потрібен повний контроль над логікою кешування або мгновенне оновлення контенту.

Ключові відмінності

Можливість Fastly Cloudflare CloudFront
Інвалідація кеша < 150 мс 1–30 с 1–5 хв
Програмування edge VCL + WASM Workers (JS) Functions (JS)
Тег-інвалідація Так Ні Ні
Real-time логи Так Так Через S3

Terraform налаштування

resource "fastly_service_vcl" "main" {
    name = "example-production"

    domain {
        name = "example.ru"
    }

    backend {
        address = "origin.example.ru"
        name    = "origin"
        port    = 443
        use_ssl = true
    }

    gzip {
        name       = "gzip-policy"
        content_types = ["text/html", "text/css", "application/javascript"]
    }

    logging_s3 {
        name           = "s3-logs"
        bucket_name    = "fastly-logs"
        path           = "/cdn/%Y/%m/%d/"
    }
}

VCL — кастомна логіка кешування

sub vcl_recv {
    // Убрати маркетингові параметри з cache key
    set req.url = regsubreplace(req.url,
        "\?(.*&)?(utm_source|utm_medium|fbclid|gclid)=[^&]*(&|$)",
        "?"
    );

    if (req.http.Cookie ~ "laravel_session") {
        return(pass);
    }

    if (req.url ~ "^/(admin|api)/") {
        return(pass);
    }
}

sub vcl_backend_response {
    if (bereq.url ~ "\.(js|css|woff2)$") {
        set beresp.ttl = 365d;
    }

    if (beresp.http.Content-Type ~ "text/html") {
        set beresp.ttl = 5m;
        set beresp.grace = 1h;
    }
}

Surrogate-Key — тегована інвалідація

// Laravel: додати теги до ответів
public function show(Product $product): Response {
    $response = response()->view('products.show', compact('product'));

    return $response->header(
        'Surrogate-Key',
        "product:{$product->id} category:{$product->category_id}"
    );
}

// При оновленні товара — інвалідувати тільки пов'язані сторінки
Http::withHeaders(['Fastly-Key' => config('services.fastly.api_key')])
    ->post("https://api.fastly.com/service/{$serviceId}/purge/product:{$product->id}");

Час налаштування: 2–3 дні для базової конфігурації з VCL та тегованою інвалідацією.