- Всесвітня павутина
- Як працюють CDN
- Що таке розумна маршрутизація
- Як працює захист від DDoS-атак на Cloudflare
- Як встановити Cloudflare на сайт з WordPress
- Як зареєструватися в Cloudflare
- Як налаштувати CloudFlare для WordPress
Вихід за кордон для сайту - це ціла історія. Можна зробити вибір мови, перевести матеріали і запустити рекламу ... а потім з'ясувати, що у зарубіжних користувачів сайт то довго завантажується, то просто видає помилки. І замість захоплених зітхань, у відгуках суцільний негатив, а на балансі - збитки.
Причина цієї проблеми - в самому принципі роботи інтернету.
Всесвітня павутина
Інтернет не просто так називають павутиною. У нього немає якогось певного центру, де зберігається все. Інтернет складається з безлічі вузлів - серверів - пов'язаних нитками інтернет-магістралей. На цих серверах зберігаються сайти.
Але як інтернет знає, на якому сервері шукати потрібну картинку? Як знайти потрібний вузол у всесвітній павутині?
Існують спеціальні DNS-сервери, які допомагають направляти запити. У кожного сервера є унікальний IP-адресу. Він складається з чотирьох груп цифр, від однієї до трьох цифр в кожній групі, і використовується для ідентифікації сервера. DNS з'єднує IP-адреса з доменом - наприклад google.com або yahoo.com.
Можна переходити по сайтам, використовуючи ці IP-адреси. наприклад, https://89.184.80.164 - це Work.ua.
Хостингові компанії, які здають в оренду домени і сервери для сайтів, створюють відповідні записи на своїх DNS-серверах. Інтернет-провайдери копіюють їх звідти на свої DNS-сервери.
Ось, як це працює на практиці:
- Одеський студент Міша відкриває браузер і вводить в адресний рядок https://work.ua .
- Комп'ютер Михайла відправляє запит на DNS-сервер місцевого інтернет-провайдера. Той визначає, що домен work.ua знаходиться на сервері з IP-адресою 89.184.80.164 і в мережі провайдера такого IP немає.
- Сервер провайдера відправляє запит Михайла національного провайдера (Укртелеком). Сервер Укртелекому визначає, що сервер з IP-адресою 89.184.80.164 знаходиться в Києві.
- Укртелеком передає запит на сервер в Києві, який передає його в місцевий датацентр. Там запит Михайла обробляється і на його комп'ютер, по тому ж маршруту, починає відправлятися головна сторінка.
Все це відбувається майже моментально. Миша навіть не встигає зробити ковток кави - а сайт вже завантажився. Але що якщо на https://work.ua зайде НЕ Миша з Одеси, а Джо зі штату Кентуккі?
Ще до того, як запит Джо потрапить в Україну, йому потрібно пройти:
- Сервер провайдера, до якого підключений комп'ютер Джо.
- Сервер регіонального провайдера штату Кентуккі.
- Сервер національного-провайдера (AT & T, Comcast).
- Сервер-передавач, який відправить запит по кабелю через Атлантичний океан.
- Цілий ланцюжок серверів в Європі, які в підсумку передадуть запит на сервери українського національного провайдера.
Прокладка кабелю по дну океану. Джерело: Білл Бернс, Atlantic Cable.
В результаті, від мене вимагається залогуватись у Джо відкривається вже не за секунду, а секунд за п'ять. І це - при вільних каналах зв'язку. Якщо якийсь канал перевантажений, то запит може десь затриматися до 10-20 секунд. Запити з затримкою довше 30 секунд видаляються, а користувач отримує сторінку помилки.
Єдиний спосіб зробити завантаження сайтів однаково швидкої для всіх - розмістити в кожній країні світу сервер з копією сайту. Але уявіть скільки коштуватиме розмістити сайт магазину в кожній країні, скільки сил потрібно, скільки програмістів і часу, щоб оновлювати кожен сайт!
Але є рішення - мережі розповсюдження контенту (CDN).
Як працюють CDN
Щоб зрозуміти принцип роботи CDN, потрібно знати, як влаштовані сайти. Вміст будь-якого сайту можна умовно поділити на статичну і динамічну.
Статичний зміст однаково для всіх користувачів сайту. Зображення, CSS, Javascript і HTML - статичні елементи. CDN копіює весь статичний контент сайту. Ця копія називається кешем. Кеш поширюється по всіх серверів CDN і коли наступного разу Джо захоче відкрити сайт, CDN швидко передасть йому кеш-копію з Нью-Йорка, не чекаючи, поки запит пройде від Кентуккі до Києва.
Динамічний вміст генерується сайтом і веб-додатками «на льоту». Якщо генерація відбувається тільки один раз, то CDN зберігає її статичний результат в кеш. Якщо генерація відбувається в реальному часі, то CDN просто передає запит на сервер.
З усіх CDN, я рекомендую Cloudflare. Крім кешування, вона захищає сайт від DDoS-атак за допомогою системи розумної маршрутизації.
Що таке розумна маршрутизація
Запит від користувача до сайту може піти різними шляхами. Наприклад, запит з США в український датацентр може піти через Британію, Нідерланди, Німеччину та Польщу. А може через Іспанію, Францію, Італію, Грецію, Болгарію і Румунію. І чим більше серверів-передавачів на маршруті - тим довше він буде йти.
Знайти карту інтернет-з'єднань можна на Telegeography . Звичайно, вона вже трохи застаріла, але просто для ознайомлення - підійде.
Коли відвідувач запитує динамічні дані з сайту, який підключений до Cloudflare, дані передаються по високошвидкісних каналах самої CDN і її партнерів. Перед початком передачі підбирається маршрут з максимально швидким з'єднанням і мінімальною кількістю серверів-передавачів. Але все це відбувається, тільки якщо запит користувача - справжній, а не частина DDoS-атаки на сайт.
DDoS-атака - тип хакерської атаки на сервер. В ході DDoS атаки, на сервер постійно відправляються запити, які він змушений обробляти. Якщо запитів дуже багато, то сервер не може обробляти їх в реальному часі і додає їх в чергу. З цього моменту, на сайт вже не можуть потрапити нормальні відвідувачі, тому що їх запити додаються в нескінченну, постійно зростаючу чергу фальшивих запитів.
Як працює захист від DDoS-атак на Cloudflare
Коли на сайт з Cloudflare приходить запит, система проводить аналіз попередніх дій пристрої, з якого прийшов запит, на інших підключених до Cloudflare сайтах.
- Якщо є шанс, що запит - частина DDoS-атаки, то він буде проігнорований.
- Якщо запит надіслав бот або краулер (автоматичний збирач даних), то доступна йому швидкість з'єднання з сайтом буде обмежена.
- Якщо ж запит надіслав звичайний користувач, то він отримує вільний доступ до сайту.
Крім цього, Cloudflare пропонує і інші, платні, рішення. Їх механізм роботи тримається в секреті, але працездатність перевірена на практиці. Мережа успішно відбиває навіть дуже складні атаки, в яких беруть участь професійні хакерські групи.
Як встановити Cloudflare на сайт з WordPress
Підключити Cloudflare до WordPress - просто. Перш за все, потрібно зареєструватися в CloudFlare.
Як зареєструватися в Cloudflare
- перейдіть на сторінку реєстрації в Cloudflare . Введіть свій email та придумайте пароль. Поставте галочку в поле I agree to Cloudflare's terms and conditions. Натисніть Create Account.
- Введіть адресу свого сайту в поле Add a website. Натисніть Scan DNS Records.
- Cloudflare просканує ваш домен і покаже рекомендовані настройки. DNS записи, які CloudFlare буде захищати, відзначені помаранчевим значком. А ті, які не буде - сірим. Клікайте на сірих іконках, щоб включити або вимкнути захист. Коли закінчите, клікніть Continue внизу сторінки.
- Якщо якісь ваші записи не вказані в списку - допишіть їх. Для цього заповніть поля над таблицею і натисніть Add Record.
- Виберіть тариф і натисніть Continue.
- Cloudflare видасть вам нові DNS адреси, на який потрібно буде перенести домен.
- перейдіть в настройки аккаунта Cloudflare і натисніть View API Key в розділі Global API Key. Збережіть отриманий ключ API.
Тепер потрібно поміняти DNS на ті, що ви отримали в пункті 5. Якщо ви - клієнт Unihost, то ви можете скористатися інструкцією Зміна NS-серверів на домені в Базі знань Unihost.
Якщо ви - не клієнт Unihost, то зв'яжіться з підтримкою свого хостингу.
Як налаштувати CloudFlare для WordPress
Після того, як ви поміняєте DNS, потрібно оптимізувати настройки кешування Cloudflare. У WordPress це можна зробити через офіційний плагін CloudFlare.
- Увійдіть в адмін-панель WordPress.
- Натисніть Модулі.
- Натисніть Додати новий.
- В поле пошуку, введіть Cloudflare.
- Знайдіть ось цей плагін у видачі пошуку. Натисніть Встановити.
- Після завершення встановлення і натисніть Активувати.
- Перейдіть в Установки> Cloudflare
- Натисніть на here
- Введіть свій логін на Cloudflare і ключ API. Натисніть Save API Credentials.
- Натисніть Apply, щоб підключити оптимізовані налаштування Cloudflare. Також клікніть Enable, щоб включити автоматичне керування кешем.
- Коли Cloudflare попросить вас підтвердити автоматичне керування кешем - клікніть I'm sure.
Cloudflare - це не чарівна паличка, один помах якої вирішить всі ваші проблеми. Вона не допоможе, якщо у вас поганий хостинг або неоптимізований сайт. Але якщо вам потрібно прискорити завантаження сайту для зарубіжних користувачів і захиститися від DDoS, то CloudFlare - найкраще рішення.
Але як інтернет знає, на якому сервері шукати потрібну картинку?Як знайти потрібний вузол у всесвітній павутині?