ОБСУДИТЬ ПРОЕКТ
EN RU
Контакты
Мы на связи

Контактное лицо: Крылов
Александр Викторович

ИНН: 3100804517

+38 (095) 385-98-25

E-mail: [email protected]

Skype: gelos_912

Напишите нам

Спасибо, что обратились к нам!

Ваше сообщение отправлено и в ближайшее время мы его рассмотрим и постараемся ответить

Оптимизация быстродействия сайта. Модули Apache.

В течении августа-сентября 2010 года, сотрудники нашей команды оптимизировали по быстродействию 2 динамических сайта на базе Joomla-Virtuemart с посещаемостью 300 — 1500 посетителей в сутки. Данный пост открывает цикл, в котором мы будем рассказывать о том как именно проводилась оптимизация, какие меры были приняты и какой эффект это дало.
Оптимизация быстродействия сайта. Модули Apache.
В течении августа-сентября 2010 года, сотрудники нашей команды оптимизировали по быстродействию 2 динамических сайта на базе Joomla-Virtuemart с посещаемостью 300 — 1500 посетителей в сутки. Данный пост открывает цикл, в котором мы будем рассказывать о том как именно проводилась оптимизация, какие меры были приняты и какой эффект это дало.

В течении августа-сентября 2010 года, сотрудники нашей команды оптимизировали по быстродействию 2 динамических сайта на базе Joomla-Virtuemart с посещаемостью 300 — 1500 посетителей в сутки. Данный пост открывает цикл, в котором мы будем рассказывать о том как именно проводилась оптимизация, какие меры были приняты и какой эффект это дало.

Сразу хотелось бы отметить тот факт, что при достижении сайтом с направленностью на электронную коммерцию посещаемости более 300 посетителей в сутки, крайне рекомендуется разместить его, по меньшей мере, на виртуальный выделенный сервер. Особенно это касается сайтов, построенных на базе связки Joomla — Virtuemart, особенно если они используют компоненты Joomfish, sh404SEF и подобные.

После переноса на выделенный сервер, администратор сайта получает root-доступ в систему, может выполнять ее тонкую настройку, в том числе и устанавливать дополнительные модули веб-сервера Apache. Ниже будет рассказано о двух полезных модулях, использование которых поднимает Yahoo overall performance score, узнать который можно с помощью дополнения Firefox Yslow.

Модуль mod_expires

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

Модули Apache в вебпанели Webmin 1.5.20 Процесс установки модуля ничем не отличается от любого другого модуля Apache2. Для установки необходимо из консоли выполнить следующие команды (для ОС Debian 5):

sudo a2enmod expires

результат команды будет иметь следующий вид:

Enabling module expires. Run '/etc/init.d/apache2 restart' to activate new configuration!

если модуль уже установлен, то будет показано следующее сообщение

Module expires already enabled

Далее необходимо включить модуль, отредактировав конфиг httpd.conf либо — для Webmin — зайти в панукт меню Службы — Apache — Global Configuration — Configure Apache Modules.

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

Для включения модуля для конкретного сайта необходимо добавить в .htaccess следующее





ExpiresActive on
ExpiresByType application/javascript "access
plus 1 months"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 months"

Как видим, для каждого типа файлов по MIME устанавливается время кэширования. Согласно правилам файлы скриптов JavaScript, JPG/JPEG, GIF, PNG и CSS будут кэшироваться на срок в 1 месяц со времени последнего доступа к сайту.

Для проверки работы модуля достаточно воспользоваться расширением YSlow. Следующие примеры работы приводит сайт askapache.com.

Пример работы mod_expires, до включения модуля.

Пример работы mod_expires, после включения модуля.

Модуль mod_deflate

Основная задача модуля — обеспечение возможности сжатия (архивирования)  на лету файлов сайта при передаче их клиенту. Его использование позволяет увеличить скорость загрузки сайта (путем уменьшения размера ее составляющих). Правила сжатия могут быть прописаны в .htaccess либо в httpd.conf и позволяют включить сжатие как для всех файлов сайтов, так и для файлов по MIME типу.

Модуль mod_deflate входит в стандартную поставку веб-сервера Apache и требует только включения для начала работы. Для включения достаточно включить его в Webmin либо включить его вручную из командной строки:

a2enmod deflate

Затем необходимо перезапустить Apache и можно переходить к конфигурированию модуля.

Как и mod_expires можно сконфигурировать модуль как глобально — для всего сервера — так и для каждого сайта в отдельности — через .htaccess. Возможно включить сжатие всего передаваемого контента, сжатие по MIME типу или сжатие  в зависимости от браузера пользователя. Дополнительно возможно установить уровень сжатия и параметры логгирования модуля. Все директивы заключаются в <IfModule mod_deflate.c></IfModule>.

Для сжатия всего траффика нужно использовать следующую директиву:

SetOutputFilter DEFLATE

Для сжатия на лету файлов по MIME типу:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Для включения или отключения сжатия в зависимости от браузера пользователя:

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Установка уровня сжатия передающегося контента:

DeflateCompressionLevel 9

Установка настроек логгирования работы модуля:

DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

Первые три директивы устанавливают какая информация будет логгироваться модулем, последняя — в каком виде.

Насколько модуль эффективен? вобщем-то в зависимости от основного контента сайта. Естественно, что степень сжатия изначально оптимизированной графики или потокового видео будет практически нулевая. Однако, если используется большое количество CSS и JS скриптов, если результирующая страница содержит большой объем кода — экономия может быть весьма существенная.

Совместимость с браузерами GZIP сжатия контента тоже достаточно высока, такой тип сжатия поддерживают все современные браузеры. В случае если браузер пользователя поддерживать GZIP сжатия — он получит несжатую страницу. Кроме того, если будет обнаружена проблема с конкретным браузером всегда можно отключить сжатие для него.

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

гарантии

гарантии

  • 10 лет на международном рынке
  • Внутренние стандарты качества
  • AGILE - методики планирования разработки
  • Передовые методики управления проектами с помощью JIRA
  • Налаженный производственный цикл от планирования и прототипирования до ручного и автоматического тестирования
посмотреть сертификаты отзывы наших клиентов
ГЛАВНОЕ В УСПЕШНОМ ИНТЕРНЕТ-ПРОЕКТЕ
это подобрать надежного и профессионального подрядчика с полным циклом услуг
заполнить бриф