Що таке CDN і як він прискорює роботу сайту

Автор: Опубліковано

Коротко: CDN — це мережа серверів, яка доставляє вміст сайту користувачам із відповідно підібраних розташувань, замість того щоб завантажувати все з одного сервера. Вона може скоротити час завантаження зображень, скриптів та інших файлів і зменшити навантаження на хостинг. Проте CDN не замінює належної роботи сервера та оптимізації сайту, а його ефективність залежить від типу вмісту й налаштувань.

Як працюють CDN і кеш

CDN, тобто Content Delivery Network, — це мережа доставки вмісту. Її сервери виступають посередниками між відвідувачем і вихідним сервером — тим, на якому працює сайт або зберігаються його оригінальні файли. Трафік спрямовується до відповідного вузла мережі. Цей вузол не обов’язково найближчий географічно: під час вибору також враховуються умови мережі та доступність.

Основний механізм CDN — кеш, тобто тимчасове сховище копій. Сервер мережі може зберегти копію зображення, таблиці стилів CSS або файлу JavaScript і передавати її наступним відвідувачам без повторного завантаження з хостингу. Якщо копії ще немає або термін її дії минув, CDN зазвичай завантажує вміст із вихідного сервера відповідно до встановлених правил.

Уявіть магазин на сервері в Польщі, який відвідують також покупці з Канади. Без CDN їхні браузери завантажують зображення товарів безпосередньо з Польщі. Завдяки CDN вони можуть отримувати збережені копії з вузла, ближчого за мережевим маршрутом, що зменшує затримки. Проте перший запит до певного файлу все ще може потребувати звернення до вихідного сервера.

Що CDN прискорює, а чого не виправить

Найпростіше застосування CDN — доставка статичних файлів, тобто таких, що однакові для всіх відвідувачів. До них належать зображення, шрифти, таблиці стилів, скрипти та файли для завантаження. Збережену копію можна використати у відповідях багатьом користувачам.

CDN також може зберігати цілі сторінки HTML, якщо це дозволяють правила сервісу та застосунку. Тут потрібна більша обережність: для загальнодоступного посібника зазвичай можна застосовувати інші правила кешування, ніж для кошика, кабінету клієнта чи сторінки з індивідуальними цінами. Динамічний вміст, створений для конкретного запиту, не завжди придатний для спільного кешу.

CDN не усуває причини повільної роботи застосунку. Якщо сторінка кілька секунд чекає на результат запиту до бази даних, обробка запиту, який має дійти до сервера, все одно може бути повільною. Мережа також не розв’яже проблему надмірної кількості скриптів, що виконуються в браузері. Вона може швидше доставити велике зображення, але зменшення його розміру залишається окремим завданням.

Деякі сервіси додатково пропонують оптимізацію зображень, фільтрування трафіку або захист від атак DDoS — спроб перевантажити сервіс масовими запитами. Проте ці функції не однакові в усіх CDN. Їхні можливості та обмеження слід перевіряти в документації конкретного постачальника.

CDN, хостинг і DNS виконують різні ролі

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

DNS — це система, яка допомагає визначити, куди спрямувати з’єднання для певного домену. Підключення CDN часто потребує зміни записів DNS або серверів імен домену. Це не означає перенесення самого застосунку: змінюється шлях, яким запити надходять до сайту.

CDN можна підключити для всього сайту або лише для окремого піддомену з файлами, наприклад static.example.com. У першому випадку слід особливо ретельно налаштувати обробку входу в обліковий запис і приватного вмісту. В обох випадках потрібно подбати про HTTPS, тобто зашифроване з’єднання, зокрема між CDN і вихідним сервером.

Коли варто впроваджувати CDN

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

Для невеликого локального сайту, аудиторія якого перебуває поблизу якісного сервера, виграш може бути менш відчутним. Перш ніж додавати ще один сервіс, перевірте, що насправді сповільнює сайт: відповідь застосунку, передавання зображень чи виконання скриптів у браузері. Порівнюйте результати вимірювань із місць, де перебуває ваша аудиторія, а не лише з власного комп’ютера.

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

Як підключити CDN без проблем із вмістом

Найбільший ризик під час налаштування — зберегти приватну відповідь як копію, доступну іншим людям. Ще одна поширена проблема — показ застарілих файлів після внесення змін на сайті. Уникнути цього допоможе коротка процедура впровадження:

  1. Визначте, що можна кешувати. Почніть із загальнодоступних зображень, CSS і JavaScript. Виключіть зі спільного кешу кошик, обліковий запис клієнта та відповіді, що містять дані користувача.
  2. Установіть термін дії копій. TTL, тобто час життя запису в кеші, має відповідати частоті змін вмісту. Перевірте, як CDN інтерпретує заголовки керування кешуванням, зокрема Cache-Control.
  3. Сплануйте оновлення. Для файлів, які змінюються, використовуйте нові назви, наприклад style.v2.css, або видаляйте старі копії за допомогою функції очищення кешу.
  4. Перевірте типові дії. Протестуйте вхід в обліковий запис, форми, покупки та публікацію змін. Порівняйте роботу сайту для користувача, який увійшов в обліковий запис, і для анонімного відвідувача.

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

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.