Web Analytics Made Easy - StatCounter
Главная Блог Сделайте сайт Laravel сверхбыстрым с помощью кеширования страниц

Сделайте сайт Laravel сверхбыстрым с помощью кеширования страниц

Сделайте сайт Laravel сверхбыстрым с помощью кеширования страниц

Введение

Каждый хочет загружать свой веб-сайт быстрее, но из-за низкого ресурса сервера выполнение SQL-запроса динамического веб-сайта, логическая обработка и некоторые вещи на стороне сервера замедляют его при увеличении посещаемости веб-сайта. В этой ситуации мы можем обслуживать наш динамический веб-сайт на laravel как статическую HTML-страницу с кешем страниц с нулевым запросом к базе данных! Он загружает страницы вашего сайта молниеносно! В этом посте я покажу вам пошаговый процесс ускорения вашего динамического веб-сайта на laravel с помощью кеша страниц.

Как сделать сайт Laravel сверхбыстрым

  1. Установите пакет кеширования страниц.
  2. Добавить промежуточное ПО кеширования страниц.
  3. Добавьте сниппет в файл htaccess.
  4. Очистить и обновить кеш страниц.

1. Установите пакет кеширования страниц

Установите пакет silber / page-cache. Для этого запустите приведенную ниже команду композера.

composer require silber/page-cache

2. Добавить промежуточное ПО кеширования страниц

Зарегистрируйте промежуточное ПО кеширования страниц в файле http / kernel.php.

'page-cache' => \Silber\PageCache\Middleware\CacheResponse::class,

Теперь добавьте промежуточное ПО к маршрутам, ответ на которые вы хотите кэшировать.

Route::get('/post/{slug}', 'SiteController@post')->middleware('page-cache');

Здесь я добавил page-cache промежуточное ПО для кеширования страниц в динамический маршрут публикации. Каждый ответ страницы будет кэшироваться как HTML-страница в нашем каталоге public / page-cache и будет обслуживать страницу очень быстро, не затрагивая логику фреймворка Laravel и запрос к базе данных.

3. Добавить фрагмент в файл htaccess

Добавьте этот фрагмент кода в свой файл htaccess перед # Handle Front Controller .... Если вы используете сервер Nginx, следуйте документации пакета page-cache.

# Serve Cached Page If Available...
RewriteCond %{REQUEST_URI} ^/?$
RewriteCond %{DOCUMENT_ROOT}/page-cache/pc__index__pc.html -f
RewriteRule .? page-cache/pc__index__pc.html [L]
RewriteCond %{DOCUMENT_ROOT}/page-cache%{REQUEST_URI}.html -f
RewriteRule . page-cache%{REQUEST_URI}.html [L]
RewriteCond %{DOCUMENT_ROOT}/page-cache%{REQUEST_URI}.json -f
RewriteRule . page-cache%{REQUEST_URI}.json [L]

4. Очистить и обновить кеш страниц

Удалите кеш страницы с помощью этой ремесленной команды.

php artisan page-cache:clear {slug}

Мы можем использовать модель boot для удаления кеша страницы при обновлении публикации. После пост-обновления он автоматически удалит кеш страницы и сделает его снова, когда получит первый запрос.

<?php namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Artisan;

class Post extends Model
{
    
    public static function boot()
    {
        parent::boot();

        static::updated(function ($model) {
            Artisan::call("page-cache:clear $model->slug");
        });
    }
}

Надеюсь, этот пост поможет вам обслуживать ваш динамический веб-сайт на laravel как статический с помощью кеширования страниц, что сделает ваш сайт очень быстрым! Вы можете узнать больше об увеличении скорости публикации на веб-сайте laravel. Если вы найдете этот пост полезным, поделитесь им с другими.

Источники

Make laravel site super fast by page-cache!

Раз в неделю мы отправляем дайджест с самыми популярными статьями. Подпишитесь на наши новости и мы сделаем для вас бесплатно аудит вашего сайта.