Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Як Laravel News забезпечив кешування на краю мережі за допомогою Fast Laravel
Новини 18 червня 2026

Як Laravel News забезпечив кешування на краю мережі за допомогою Fast Laravel

Команда Laravel News нещодавно завершила масштабний проєкт з оптимізації продуктивності сайту, впровадивши edge-кешування за допомогою курсу Fast Laravel від JMac та інфраструктури Cloudflare. Редакція вирішила поділитися результатами цього експерименту, розглянувши власний сайт як детальне кейс-стаді.

Особливість ситуації полягає в тому, що Laravel News - це високонавантажений ресурс з контентом, який постійно оновлюється: нові статті, посилання, спонсори, сповіщення у верхній частині сторінки. Багато розробників припускають, що такі сторінки неможливо кешувати. Проте цей проєкт доводить протилежне.

Почніть з найпопулярніших сторінок

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

Для Laravel News це звелося до п'яти ключових сторінок:

  • Головна сторінка
  • Сторінка блогу
  • Сторінки окремих статей
  • Сторінка посилань спільноти
  • Сторінка нових посилань

Три виклики, які довелося подолати

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

Видалення Livewire там, де він не потрібен. Сайт було побудовано так, що майже все було компонентами Livewire, хоча насправді лише форма підписки на розсилку використовувала реактивність Livewire. Все інше фактично було звичайними Blade-шаблонами. Конвертація цих компонентів назад у прості Blade-компоненти виявилася дуже простим рефакторингом і дозволила ізолювати кілька ділянок, які справді мають залишатися динамічними.

Збереження динамічності там, де вона потрібна. Деякі елементи не можна заморозити в кешованій сторінці: toast-сповіщення, форму підписки та блоки спонсорів і партнерів, які ротуються при кожному запиті, щоб один партнер не показувався цілий день. Оскільки Alpine вже використовувався для Livewire, команда додала Alpine AJAX і застосувала його для заміни цих компонентів під час завантаження сторінки.

Конфлікт двох рівнів кешування. Laravel News працює на платформі Laravel Cloud, яка пропонує вбудоване edge-кешування і використовує Cloudflare під капотом. Оскільки сайт також використовував Cloudflare безпосередньо, два рівні конфліктували між собою, і було складно визначити, чиї політики діють, або правильно очистити кеш на рівні Cloud. Команда Laravel Cloud надала значну підтримку під час діагностики, але зрештою виявилося простіше обійти правила Cloud і використовувати Cloudflare безпосередньо. При цьому всі переваги залишаються.

Очищення кешу при зміні контенту

Кеш очищується при деплої, як і на будь-якому іншому сайті, але справжня робота починається, коли публікується стаття або схвалюються посилання. Більшість цих операцій виконується через події моделей Laravel. Коли стаття оновлюється, система прослуховує подію updated і очищає кеш цієї конкретної статті, а також головної сторінки та сторінки блогу, оскільки свіжий пост з'являється і там.

Найскладнішим випадком виявилися заплановані статті. Редакція пише статті ввечері й планує їх публікацію на 9 ранку, тому в момент виходу поста жодна подія не спрацьовує - відбувається лише запит з порівнянням published_at. Найпростішим рішенням стало використання команди, яка вже виконувалася для публікації нових постів у соціальних мережах. Тепер ця команда також очищає кеш головної сторінки, блогу, статей і сторінок посилань. У гіршому випадку сторінка залишається застарілою близько п'яти хвилин, поки команда виконується.

Працює на будь-якій платформі

Jason підкреслив, що жодна з цих технік не прив'язана до Laravel Cloud. Поки перед застосунком знаходиться Cloudflare, це працюватиме на будь-якому сервері. Він керує Laravel Shift на сервері DigitalOcean за $5 на місяць, який обробляє близько 50 000 запитів на день з повністю кешованою публічною частиною, і бачить час відгуку близько 20 мілісекунд від краю мережі.

Єдиний поточний виняток - Livewire, оскільки він значною мірою покладається на сесію для своєї реактивності. Jason обговорює з Caleb Porzio можливість створення анонімного компонента, який міг би "оживати" після завантаження сторінки. Inertia, React та будь-які інші рішення, що виконують API-виклики, працюють без проблем.

Результати

Для Laravel News результати виявилися миттєвими. Відсоток кешованих запитів зріс від підліткових цифр до більшості запитів, зі сплесками до 70%, і сайт відчувається значно швидшим. Наступний крок - повернутися через квартал і перевірити, чи дозволить зменшене навантаження на сервер перейти на нижчий рівень обчислювальної потужності без помітної різниці для користувачів.

Повне інтерв'ю доступне у відеоформаті, а курс Fast Laravel відкритий для всіх бажаючих. За словами Jason, edge-кешування - це одна з тих забутих практик, яка варта повторного розгляду, і після її освоєння ви зможете застосовувати її до кожного сайту, який створюєте.

44

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

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

Laravel AI SDK на практиці
Новини 09 жовтня 2026

Laravel AI SDK на практиці: агент, що стоїть за There There

Фрік Ван дер Гертен розповідає, як у Spatie побудували AI-шар хелпдеска There There на Laravel AI SDK: клас агента, інструменти з типізованою JSON-схемою та делегування роботи звичайним domain-діям.

9
CSRF і завантаження
Новини 09 жовтня 2026

Порада з безпеки: як завантаження файлів може обійти захист від CSRF

Стівен Ріс-Картер пояснює, чому файли користувачів варто віддавати з окремого домену: HTML і JS у межах основного застосунку дають доступ до cookie та CSRF-токенів.

18

Вакансії за темою

GGLUXOUTLET
7 днів тому

Senior+/Tech Lead Full-Stack WordPress Developer / Code Architect

Досвідчений Senior+/Tech Lead Full-Stack WordPress розробник для проєктування та розробки високонавантажених e-commerce рішень. Потрібні глибокі знання WordPress Core, WooCommerce, PHP 8.1+ з SOLID/ООП, React/Next.js для фронтенду, Python для автоматизації, DevOps (VPS, Docker, CI/CD) та AI-інтеграцій. Роль включає архітектуру, код-рев'ю, менторство і комунікацію з бізнесом. Мінімум 7 років досвіду, з них 3+ на WordPress/WooCommerce у високонавантажених проєктах.

TechnologyAdvice
25 днів тому

Senior Product Engineer (Contract)

Старший розробник, який експертизується на AI-assisted розробці. Розробник матиме займатися повним циклом розробки web-додатків і внутрішніх систем: від discovery до production, з використанням сучасних фреймворків (Laravel чи подібні), AWS/Cloudflare, реляційних БД. Ключові вимоги: досвід з production web-додатків, AI-powered tools (Cursor, Claude), системне мислення, спроможність працювати незалежно.

Key2Law
25 днів тому

Full Stack Developer (Laravel)

Full Stack розробник на Laravel для розробки та підтримки веб-додатків. Відповідальний за реалізацію backend (REST APIs, бізнес-логіка, оптимізація БД) і frontend (Blade, Tailwind, Alpine/Livewire/Vue), тестування, деплой та моніторинг. Вимоги: PHP 8.1+, Laravel 10+, знання Eloquent, Queue, Redis, MySQL, JavaScript ES6+, PHPUnit/Pest, Docker, Git, основи AWS. Бажано досвід з Fintech, криптовалютами, high-availability системами.

Пакети за темою

Laravel Octane

laravel/octane

Прискорює застосунок, тримаючи його в пам'яті між запитами через FrankenPHP, Swoole або RoadRunner. Прибирає завантаження фреймворку з кожного запиту, даючи кратний приріст пропускної здатності.

4,035 v2.19.1 13 6

Laravel Pulse

laravel/pulse

Дашборд продуктивності застосунку в реальному часі: повільні запити й джоби, навантаження на сервери, використання кешу, найактивніші користувачі. Легка альтернатива зовнішнім APM-сервісам.

1,710 v1.8.0 13 3