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

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

Коментарі

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

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

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

Fresh Package
Новини 19 вересня 2026

Fresh Package: новий скелет для розробки Laravel-пакетів з Testbench, CI та інтеграцією Boost

Fresh Package від Mazen Touati - це сучасний скелет для створення Laravel-пакетів, який включає тестове середовище, статичний аналіз, CI/CD, workbench-додаток та шаблони навичок для AI-агентів. Підтримує як backend-only, так і full-stack пакети.

6
Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK Рекомендовано
Новини 18 вересня 2026

Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK

TypeSafe AI випустила Jev - модель, яка не генерує текст, а повертає типізовані рішення з каліброваними ймовірностями за 70-500 мс. Через два дні підтримка приїхала в гілку 1.x пакета laravel/ai у вигляді API Classification з питаннями Boolean, Choice і Score.

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

Анонімний роботодавець Нова
Сьогодні

Web Developer / Server Administrator (WordPress, Linux, Nginx)

Веб-розробник для WordPress-сайтів з управлінням серверною інфраструктурою на Ubuntu. Розробка кастомних тем та плагінів, PHP-код, верстка, развертывание на VPS (Nginx, PHP-FPM, MySQL), адміністрування серверів, налаштування Cloudflare та SEO. Вимоги: 3+ років досвіду з WordPress, впевнений PHP, HTML5/CSS3/JavaScript, знання Nginx, MySQL, DNS, Cloudflare.

Key2Law
6 днів тому

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 5

Laravel Pulse

laravel/pulse

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

1,710 v1.8.0 13 3