Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

a70253925432735ab6852f7154ec1fe1

У клиентов vps часто возникает потребность в настройке сжатия, которое необходимо при оптимизации веб-сайта под Google Pagespeed Insights.

Они делают попытки включить сжатие в настройках сайтов самостоятельно через панель ISPM, однако Гугл упорно не хочет «видеть», что сжатие активировано.

a70253925432735ab6852f7154ec1fe1 800x625 Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

Vps хостинг Украина и его оптимизация

Как включить кэширование и сжатие на сайте?

В итоге оказывается, что сжатие включено было не до конца, так как панель управления от ISP не позволяет так гибко настраивать вебсервер. При подключении через SSH к консоли сервера и исследовании конфигурации Nginx, быстро обнаружилось, что сжатие на самом деле и не включено, так как для этого отсутствует важная директива gzip_types.

Чтобы включить сжатие, вполне достаточно в файл конфигурации виртуалхоста добавить такие строки.

1 Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

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

Опционально можно также указать уровень сжатия. У многих пользователей это можно было делать бегунком в панели управления.

gzip_comp_level 5;

Nginx поддерживает девять степеней сжатия, как и gzip, посредством которого оно делается. Шестой уровень считается самым оптимальным по соотношению производительность/сжатие. Так как при дальнейшем увеличении степени сжатие будет улучшено мало, в то время как это значительно повысит нагрузку на процессор. В связи с этим желательно вообще не указывать степень сжатия или указать его не больше 6.

Кэширование по Google Pagespeed

Это указание для веб-браузера, посредством которого будет открываться сайт, какие файлы, на какой срок он сможет сохранить на диске в кэше веб-браузера. Это делается, чтобы при последующих посещениях этого сайта не перекачивать все не изменившиеся файлы ресурса — таблицы стилей (css), скрипты (js), изображения шаблона и различных элементов управления.

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

Именно это Google требует включить на вебсервере. Для разных вебсерверов это делается по-разному. Для вебсервера Nginx рецепт весьма прост.

Нужно применять expires.

К примеру таким образом:

location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
expires max;
log_not_found off;
}

Данный вариант сообщает веб-браузеру пользователя кэшировать описанные виды файлов насовсем — max. Вместо max указать можно число часов — 2h, дней (3d) или месяцев (1m). Вдобавок, в данной конфигурации дается указание на записывание в лог вебсервера сообщения с ошибкой 404 для этих файлов.

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

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

Как включить кэширование и сжатие для вебсервера Apache?

В vps хостинг Украина применяется именно такой вебсервер. Хотя nginx в настоящее время «в тренде», бодрый старичок Apache 2 еще применяется многими вебмастерами и хостерами. Как минимум в качестве полноценного бэкенда. Здесь необходимо сделать отвлечение на сложную анатомию сервера.

vps 800x667 Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

Что за бэкенд?

Все дело в том, что современное серверное ПО и сами информационные системы, в частности сайты, разделяют обычно на frontend и backend. Бэкенд — «задняя» часть, которая от пользователя скрыта и представляет собой основу веб-сайта — БД и исполняемые файлы CMS — зачастую на php.

Backend отвечает раз за работу данных частей веб-сайта. Тогда как фронтенд — это перед, только то, что видит посетитель веб-сайта или сервиса — весь его интерфейс. Это то, что отображается в веб-браузере — html-код странички, стили, javascript изображения, различный контент.

В упомянутом контексте nginx — обработчик фронтенда, он отлично умеет отдавать различные статические элементы. Однако для исполнения php-кода веб-сайта нужен обработчик, а вебсервер nginx этого, к сожалению, не умеет. Так вот, вебсервер apache — умеет отдавать как фронтенд, так и бэкенд. Вот такой он универсал.

Итак, чтобы настроить Apache под Google Pagespeed необходимо также включить кэширование и сжатие.

Это сделать можно как для всего вебсервера Apache, так и для каждого интернет-сайта в отдельности.

Это можно также делать в различных местах. Самый простой путь — добавить в файл с названием .htaccess такой код:

2 Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

Итак, кэширование и сжатие включено, интернет-сайты заработали побыстрее, оценка google pagespeed insights в определенных местах «позеленела». Однако проблемы были не только лишь в этом, будем разбираться далее.

Исследуем системные логи

Там сразу же отмечаем проблему — вебсервер Apache валится с ошибкой о недостатке памяти.

Однако вся память на сервере не применяется, а ему все равно не хватает. Именно это и приводит к постоянным зависаниям сервера в часы пик.

Ошибка 502 (Bad Gateway), показывается когда вебсервер Apache не успевает обработать все поступающие запросы. Попробуем включить на сервере еще один вид кэширования — APC. Это специальный модуль PHP, выполняющий прекомпиляцию кода, сохраняющий общий результат его выполнения в ОЗУ. Потом, повторные запросы к одним и тем же страничкам не приводят к выполнению того же кода, если в нем не было каких-то изменений, а позволяют вебсерверу Apache отдать из кэша готовый результат.

Итог — странички стали открываться быстрее, но иногда все же показывается ошибка 502. В том числе в консоли администратора CMS WordPress. Понятно, ведь данная часть сайта может наиболее сильно нагружать вебсервер, так как при обращении к ней серверу необходимо выполнять десятки и сотни скриптов php. Благо, что посетители туда не ходят.

Тем не менее, проблема есть, остается еще одно хорошее средство — убрать Apache, заменить его на специальный обработчик Php-fpm.

hosting 800x600 Как оптимизировать vps хостинг Украина чтобы не тормозили сайты

Замена вебсервера apache на обработчик php-fpm

Это весьма быстрый сервер, умеющий выполнять исключительно php-код, не умеющий отдавать статические файлы, код html. Но это нам и не надо — у нас есть превосходный обработчик фронтенда в виде Nginx.

Вдобавок, я считаю настоящим моветоном, ставить вебсервер Nginx перед вебсервером Apache. Ну это то же, что засунуть в кузов и шасси болида формулы-1 древний двигатель от «Жигули». Авто ехать может довольно быстро — однако двигатель сильно чихает.

Тем не менее, многие сисадмины и хостинг провайдеры применяют именно эту схему. Почему? Да потому что так несколько проще, ведь обработчик php-fpm труднее в настройке.

То же мы видим и здесь.

Итоги оптимизации сервера

Дальше наступает очень важная часть работы. А именно наблюдение и отладка всего того, что мы наделали. Вероятно, я вас удивлю, однако работа сисадмина заключается в совершении различных ошибок. Совершаем, наблюдаем, затем исправляем. Пробуем, пробуем, и еще раз пробуем.

Иногда десятки вариантов, десятки ПО, сотни настроек, их значений. Конечно же, каждая следующая итерация отладки показывать будет лучший результат.


Поделитесь с друзьями



Оставить комментарий

apteka mujchine for man ukonkemerovo woditely driver.