Коли користувач із Хабаровська відкриває ваш сайт, що хоститься в Москві, кожен запит проходить 7000 км. TTFB може сягати 500 мс — це вбиває Core Web Vitals. У проекті інтернет-магазину з медіаконтентом ми зафіксували LCP 4.2 с при 80% трафіку з регіонів. Після впровадження CDN з 12 точками присутності (PoP) LCP впав до 1.1 с, TTFB — з 450 до 45 мс. CDN (Content Delivery Network) кешує статику на серверах, розташованих ближче до користувача. Ми налаштовуємо CDN з регіональними точками присутності для конкретних географій — Росія, СНД, Європа, Азія. У цій статті розберемо, як підібрати провайдера, налаштувати кешування та інвалідацію — щоб користувачі з будь-якого регіону отримували контент за мілісекунди.
Як вибрати CDN для регіонального охоплення?
| Провайдер | PoP в СНД | Глобальні PoP | Рекомендація |
|---|---|---|---|
| Cloudflare | Москва, Київ, Алмати | 310+ | Швидкий старт, WAF |
| Gcore | 10+ точок в СНД | 60+ | Найкраще покриття Росії |
| AWS CloudFront | Москва | 450+ | Інтеграція з S3, Lambda@Edge |
| Bunny CDN | Москва | 120+ | Дешевий, простий |
| VK Cloud CDN | СНД | 10+ | Для російського трафіку |
Cloudflare підходить для швидкого запуску, але AWS CloudFront виграє за кастомізацією — інтеграція з Lambda@Edge для динамічної оптимізації. Час завантаження з CDN падає в 3–5 разів порівняно з прямим доступом. Ми маємо досвід роботи з кожним із цих провайдерів — понад 50 проектів. Гарантуємо правильне налаштування кешування та інвалідації. Ціни на тарифи починаються від $0.01/GB, а економія на трафіку може сягати 70%.
Налаштування Cloudflare CDN
Після підключення домену налаштування кешування: Page Rules для статики (застарілий інтерфейс):
URL: *.example.com/assets/* Cache Level: Cache Everything Edge Cache TTL: 1 month Cloudflare Cache Rules (новий інтерфейс):
Field: URI Path Operator: starts with Value: /assets/ Action: Cache eligibility → Eligible for cache Cache TTL: 30 days Для динамічного контенту (HTML) використовуйте правило з TTL 1 година та must-revalidate. Це дозволить CDN кешувати відповіді, але перевіряти свіжість при кожному запиті. Докладніше в документації Cloudflare Cache Rules.
Як налаштувати AWS CloudFront для регіонального охоплення?
Конфігурація CloudFront з оптимізованою політикою кешування:
{ "Origins": [{ "DomainName": "example.com", "Id": "origin-1", "CustomOriginConfig": { "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" } }], "DefaultCacheBehavior": { "TargetOriginId": "origin-1", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6" }, "CacheBehaviors": [{ "PathPattern": "/assets/*", "TargetOriginId": "origin-1", "CachePolicyId": "CACHING_OPTIMIZED", "Compress": true }] } Використовуйте політику CACHING_OPTIMIZED для статики — вона включає стиснення та тривале кешування. Для інтеграції з CI/CD читайте документацію AWS CloudFront Invalidation API.
Чому важлива коректна конфігурація кешування?
CDN поважає заголовки origin-сервера. Якщо на сервері не виставлені правильні Cache-Control, CDN може не кешувати ресурси або кешувати занадто довго. Приклад Nginx-конфігурації:
location ~* \.(js|css|woff2|png|jpg|webp|svg)$ { expires 1y; add_header Cache-Control "public, immutable"; add_header Vary "Accept-Encoding"; } location ~* \.html$ { expires 1h; add_header Cache-Control "public, must-revalidate"; } Директива immutable говорить браузеру: не роби conditional request навіть при оновленні сторінки. Працює з content-hashed іменами файлів (app.a1b2c3.js).
Що таке інвалідація кешу і як її автоматизувати?
При деплої нового коду кеш CDN потрібно скинути. Ручне очищення через адмін-панель — джерело помилок. Натомість додайте крок у CI/CD pipeline:
# Cloudflare curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache" \ -H "Authorization: Bearer $CF_TOKEN" \ -d '{"purge_everything":true}' # AWS CloudFront aws cloudfront create-invalidation \ --distribution-id $DIST_ID \ --paths "/assets/*" Якщо використовуєте версіонування файлів, інвалідація не потрібна — CDN запросить нові URL. Але для HTML-сторінок без хешу інвалідація обов'язкова. Наші інженери налаштовують автоматичний запуск після деплою.
Порівняння метрик до і після CDN
| Метрика | Без CDN | З CDN |
|---|---|---|
| TTFB (Хабаровськ) | 450 мс | 45 мс |
| LCP | 4.2 с | 1.1 с |
| Cache Hit Ratio | 0% | 95% |
| Час завантаження сторінки | 6 с | 1.5 с |
Що входить в роботу
- аудит поточної конфігурації DNS та сервера;
- підбір CDN-провайдера під географію та бюджет;
- налаштування кешування статики (зображення, шрифти, скрипти, стилі);
- налаштування інвалідації кешу через API при деплої;
- документування конфігурації та навчання команди;
- гарантія 30 днів на коректну роботу CDN.
Процес роботи
- аналітика — вивчаємо поточні метрики завантаження, географію користувачів, вузькі місця;
- проектування — вибираємо провайдера, продумуємо архітектуру кешування;
- реалізація — налаштовуємо CDN, origin-сервер, CI/CD integration;
- тестування — перевіряємо TTFB, кеш-hit ratio, Core Web Vitals;
- деплой — вводимо CDN в експлуатацію, моніторимо.
Строки орієнтовно
Налаштування CDN з регіональними точками та автоінвалідацією: від 1 до 3 робочих днів. Вартість розраховується індивідуально — залежить від кількості провайдерів, складності інвалідації та необхідності навчання. Наприклад, бюджетне рішення на Cloudflare коштує від $20 на місяць, а повний комплекс «під ключ» — $500. Оцініть економію: при 100 ГБ трафіку на місяць різниця між прямим доступом і CDN сягає $70.
Пишіть нам — ми проведемо аудит поточної конфігурації та запропонуємо оптимальне рішення. Замовте налаштування CDN за 1-2 дні й отримайте гарантію 30 днів на коректну роботу. Ми оцінимо ваш проект безкоштовно.







