Виділіть кеш сторінок Cloudflare за допомогою групи проміжного програмного забезпечення

3
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 23 грудня, 2025
В останні кілька місяців я підняв кешування сайту до 98%, усунувши типові проблеми, пов'язані з налаштуванням Cloudflare. Чи хочете дізнатися, як створити спеціальну групу middleware для ефективного кешування вашого Laravel-додатку? Читайте далі, щоб відкрити нові можливості оптимізації вашого сайту

Протягом останніх кількох місяців я зумів підвищити laravelshift.com з 6% до 98% кешування. Коли я тільки починав, пам’ятаю, як обирав запит кешування додатка Laravel з Cloudflare. Перші два результати — пост Енді Хінкля та пакет.

Обидва використовували проміжне програмне забезпечення для налаштування заголовків кешу для Cloudflare. Але у них були недоліки. Хоча вони встановлюють відповідні заголовки, Cloudflare ігнорує рішення Енді, адже відповідь також включала заголовки Set-Cookie (стандартна поведінка Laravel). Пакет повністю видаляв заголовок Set-Cookie, що є доволі небезпечним, оскільки могла кешуватися версія сторінки з даними користувача.

Я хотів щось більш зрозуміле та чітке, щоб уникнути будь-яких непередбачуваних ситуацій при кешуванні сторінок. Врешті-решт, я вирішив зареєструвати нову групу проміжного програмного забезпечення static.

// bootstrap/app.php
->withRouting(
    web: __DIR__ . '/../routes/web.php',
    api: __DIR__ . '/../routes/api.php',
    commands: __DIR__ . '/../routes/console.php',
    channels: __DIR__ . '/../routes/channels.php',
    then: function () {
        Route::middleware('static')
            ->group(base_path('routes/static.php'));
    }
)

Ця група фактично є копією групи api. Вона виключає всі станні проміжні програмні модулі, такі як запуск сесії чи шифрування cookie. Вона лише встановлює заголовки кешу та дозволяє прив’язку параметрів маршруту.

$middleware->group('static', [
    \App\Http\Middleware\SetCacheControlHeader::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
]);

Виключивши всі станні модулі, я запобігаю випадковому використанню станних даних на кешованих сторінках, що можуть бути або з сесії, або з cookie. Група проміжного програмного забезпечення також дозволяє мені чітко визначати кешовані сторінки в окремому файлі маршрутів. Тепер я реєструю всі статичні сторінки у routes/static.php, що спрощує перелік кешованих сторінок.

Наприклад, за допомогою:

php artisan route:list --middleware=static

Використання окремої групи проміжного програмного забезпечення — це простий спосіб кешування сторінок з Cloudflare (або будь-яким іншим кешем). Це допомагає уникнути звичних побічних ефектів і чітко розділяє ваші кешовані сторінки. Якщо ви зацікавлені в покращенні продуктивності сайту за допомогою кешування з Cloudflare, приєднуйтесь до списку раннього доступу мого майбутнього курсу Fast Laravel

Популярні

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

Logomark Logotype

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!