Как увеличить скорость загрузки сайта

О важности хорошей скорости работы сайта было, есть и будет сказано так много, что лучшее резюме, пожалуй — “скорость работы сайта = окупаемость сайта”. Большая часть предлагаемых решений связана с оптимизацией, а то и полным рефакторингом исходного кода веб-сайта. Проводятся увлекательные эксперименты со сжатием и пережатием изображений, перестановкой строк подгрузки CSS- и JS-файлов, вымучиванием ускорений собственно из CSS-стилей — и так до бесконечности. На практике же, требование “быстрый сайт” чаще всего идет в комплекте с “быстро сделанный сайт”, что сразу определяет выбор движка проекта из хорошо известных “коробочных” CMS.
По этой причине, производительность и тюнинг проекта ложатся на хрупкие плечи администратора, или же в более модной трактовке — DevOps-а.

serezha-01

Мы рассмотрим вариант, когда нужно “разогнать” уже готовый проект на самой популярной бесплатной системе WordPress. В качестве аппаратной платформы, возьмем распространенное и гибкое решение — VPS-хостинг, где мы имеем полную свободу действий в плане установки любых программ и их настройки.
Итак — что делать?

  1. Устанавливаем Percona Server вместо MySQL

 

Основное преимущество Percona Server (форк проекта MySQL) перед стандартным MySQL — лучшая производительность на проектах с высокой нагрузкой. При этом, на клиентском уровне, с которым собственно и работает код веб-сайтов (CMS), сохраняется полная совместимость выполнения запросов. Следующий плюс Percona Server — хорошая начальная оптимизация настроек при установке, то есть “свежеустановленный” сервер уже будет неплохо сконфигурирован по-умолчанию. Также, большинство знаний и рецептов, накопленных обширным MySQL-сообществом — вполне применимы и к Percona Server, хотя возможности конфигурирования последнего намного шире.

  1. nginx вместо Apache HTTP Server

Веб-сервер nginx изначально разрабатывался с прицелом на решение проблемы C10K — эффективной работы с более чем 10 тысячами клиентских подключений, с чем он успешно справился. Легковесный и масштабируемый, nginx работает в асинхронном режиме и хорошо выполняется на относительно слабом “железе”.
Чаще всего, nginx используется как прокси перед Apache, для эффективной обработки и распараллеливания клиентских запросов, ну а сам Apache отвечает в этой связки за динамические скрипты (код PHP и т.д.).
Также необходимо включить работу сайта через протокол HTTP/2, что даст существенный прирост скорости работы.

  1. PHP-FPM вместо Apache+PHP

На следующем шаге логически напрашивается мысль — можно ли чем-то заменить Apache? В нашем случае, когда код CMS написан на PHP, хорошим решением будет использовать PHP-FPM. Этот модуль является альтернативной реализацией библиотеки PHP FastCGI и включает ряд дополнительных возможностей.
Такое решение ограничит нас выбором из CMS, написанных только на PHP, однако выбор среди них достаточно широк практически для любых задач.
 4. Устанавливаем Varnish

Varnish — ускоритель HTTP-запросов для веб-сервера. Работая как прокси, при хорошей настройке Varnish способен ускорить работу веб-сайта в несколько раз. Однако, настройка Varnish-а — задача не из простых, и больше похожа на программирование, чем конфигурирование, поэтому “рабочее решение” — найти подходящий под остальные компоненты веб-проекта конфигурационный файл, и опытным путем проверить его работоспособность.
Почитать подробнее о настройке Varnish-а для нашего WordPress-а можно, например, здесь.

  1. Устанавливаем W3 Total Cache для WordPress

Плагин W3 Total Cache дает показывает очень хорошие результаты среди своих собратьев — кэширующих плагинов для WordPress. Также W3 Total Cache умеет работать и с упомянутым выше Varnish-ем, что дает кумулятивный эффект прироста производительности.

 

Что в итоге?

Не претендуя на лучшее из возможных решений, мы смело можем заявить — проделав все вышеизложенное, вы сделаете практически все, что было в ваших силах в плане программной “разгонки” вашего веб-проекта. Специалисты нашей компании неоднократно применяли озвученные выше советы на практике, и улучшение всех показателей не заставляло себя ждать.

Для всех тех, кто решит досконально разобраться в тюнинге веб-проектов и получить ответы на свои вопросы, двери наших курсов открыты круглый год!

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *