Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Як 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-кешування - це одна з тих забутих практик, яка варта повторного розгляду, і після її освоєння ви зможете застосовувати її до кожного сайту, який створюєте.

45

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

Коментарі

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

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

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

Новини 09 листопада 2026

Laravel Herd 2.0: Herd Studio, workspaces і автоматичний dev-сервер

Herd 2.0 для macOS і Windows додав Herd Studio - панель у браузері для роботи з coding-агентами поруч із сайтом .test, ізольовані workspaces на окремих гілках і піддоменах та автоматичний запуск php artisan dev. Усе AI вимикається, а базовий Herd лишається безкоштовним.

Новини 09 листопада 2026

Вразливості в PHPUnit 13.4 і symfony/yaml: що оновити в Laravel-проєкті

PHPUnit 13.4.0-13.4.3 виконував код PHPT-тестів зі спільного каталогу /tmp/phpunit-phpt, який міг підмінити інший користувач машини. Виправлення - 13.4.4, а користувачам Pest 5 треба оновити сам Pest до 5.3.4. Заразом - нагадування про DoS у symfony/yaml, виправлений у 5.4.54, 6.4.45, 7.4.18 і 8.1.6.

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

PAPAYA
5 днів тому

Розробник (PHP / OpenCart, e-commerce інтеграції)

Технічний розвиток інтернет-магазину на OpenCart: нові функції, швидкодія, чистота коду, верстка за макетами Figma. Налаштування збору e-commerce подій для GA4, Google Ads і Meta через web- та server-side GTM, інтеграції з CRM, email-платформою та платіжною системою, генерація товарних фідів, технічне SEO, DNS і Cloudflare. Вимоги: понад 5 років у web-розробці, від 3 років e-commerce на PHP, досвід з OpenCart обов'язковий або бажаний.

HAMSTERS
22 дні тому

PHP Tech Lead / Software Architect (hands-on)

Технічний лідер, який прийме чинні PHP-системи (CPA-платформа, CRM/ERP, інструменти Media Buying) і організує роботу невеликої команди, самостійно беручи участь у розробці. Головний стек: PHP 7.4-8.5 на власному framework, прямий SQL до MariaDB, Redis, Memcached, Node.js/WebSocket. Потрібен досвід 5+ років комерційного PHP, роботи з legacy-кодом, фінансово значущих операцій, інтеграцій із ідемпотентністю та поступової модернізації з міграцією даних. Також потрібні базові DevOps-навички в Linux,

TechnologyAdvice
56 днів тому

Senior Product Engineer (Contract)

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

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

Laravel Octane

laravel/octane

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

4,035 v2.19.1 13 7

Laravel Pulse

laravel/pulse

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

1,710 v1.8.0 13 4