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

Коментарі

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

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

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

CPX 2.0
Новини 01 серпня 2026

CPX: Інструмент для виконання Composer-пакетів без встановлення

CPX 2.0 - офіційний інструмент Laravel для запуску команд з будь-якого Composer-пакета без його встановлення в проєкт. Працює як npx для npm, усуває конфлікти залежностей і підтримує виконання PHP-файлів, gist-скриптів та REPL.

Human-in-the-Loop
Новини 31 липня 2026

Laravel AI SDK отримав функцію Human-in-the-Loop для підтвердження дій

На Laracon US 2026 команда Laravel представила API human-in-the-loop для Laravel AI SDK. Тепер агенти можуть зупинятися перед виконанням інструмента та чекати на підтвердження, відхилення або редагування аргументів людиною.

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

MacPaw
3 дн. тому

Junior Front-end Engineer

Junior Front-end розробник для розробки та підтримки веб-проектів. Основний стек: React.js, Next.js, JavaScript ES6+, HTML5, CSS3. Вимоги: 1.5+ років комерційного досвіду, проміжний рівень англійської, Git, сучасні build tools. Робота з маркетинговими сторінками, миграцією legacy кода, A/B тестуванням та платіжними інтеграціями.

Frozeneon
11 дн. тому

DevOps

DevOps спеціаліст займатиметься підтримкою та розвитком інфраструктури, запуском нових продуктів та забезпеченням відмовостійкості сервісів. Ключовий стек: Ansible, Docker, AWS (EC2, RDS, S3), Cloudflare, MySQL 8, Redis 6, Linux/Ubuntu, моніторинг (Datadog, New Relic). Вимоги: мінімум 1 рік з Ansible, адміністрування Linux, досвід з Bare Metal серверами та хмарною інфраструктурою AWS.

Secure IQ Services
18 дн. тому

Senior Outsourced PHP Developer

Розробка та еволюція кастомного PHP веб-додатку на Core/Vanilla PHP без современних фреймворків. Спеціаліст займатиметься реалізацією REST API, оптимізацією SQL запитів, інтеграцією MongoDB, роботою з AWS (Elastic Beanstalk, S3, DynamoDB), фронтенд-розробкою на jQuery та Tailwind CSS. Ключові вимоги: Core PHP з OOP принципами, SQL-мастерство, AWS, безпека, Git. Робота в парі з досвідченим розробником.

Відео за темою