Решил заняться оптимизацией скорости загрузки блога и решил его прогнать при помощи сервиса webo.in, в рекомендациях по оптимизации было написано:

HTML-файлы могут быть уменьшены в размере.
Рекомендуется применить для них технику minify, также размер файлов может быть существенно (до 80%) уменьшен через архивирование (gzip).

Решил начать с архивирования файлов... Перейдем к mod_deflate

  1. Apache 1.3 — mod_gzip и mod_deflate (разработанный Сысоевым, автором nginx).
    Подробнее можно почитать у Лиссяры -> mod_gzip — сжатие html страниц «на лету»
  2. Apache 2.2 — mod_deflate

Так как у меня версия Apache 2.2.8 на сервере, то буду рассказывать про второй пункт. Для начала необходимо установить данный модуль (желательно ставить через порты), но у меня он был уже установлен, я его просто активировал в httpd.conf

Открываем файл конфигурации Apache

vi /usr/local/etc/apache22/httpd.conf

И добавляем правило:

  <ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
    DeflateCompressionLevel 8
  </ifmodule>

AddOutputFilterByType — тут назначаем фильтр DEFLATE для миме типов: text/html text/plain text/xml

DeflateCompressionLevel — степень gzip-компрессии от 1 до 9 (Инструмент для расчета степени gzip-сжатия в помощь)

Проверяем наши настройки

httpd -S
apachectl restart

Проверяем сжатие

w3m -dump_head http://localhost/

или

lynx -head -dump "http://localhost/"

ну или посмотрите в своём любимом броузере (для FireFox рекомендую Live Http Headers)

Если видим строку «Content-Encoding: gzip», то всё в порядке! Идём дальше, если нет, проверьте предыдущие шаги.

Теперь в фильтр можно добавить ещё типы: text/css и text/javascript

  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

Логи храним в отдельном файле

  DeflateFilterNote Input instream
  DeflateFilterNote Output outstream
  DeflateFilterNote Ratio ratio
  LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

http://httpd.apache.org/docs/2.2/mod/mod_deflate.html#DeflateFilterNote

Далее, указываем в виртуальных хостах путь до лога, например:

CustomLog /var/log/adw0rd.ru-deflate_log deflate

Комментарии (12) на запись «Сжимаем сайт при помощи mod_deflate»

» Трекбеки скрыты, показать их?
  1. sunnybear | 16.11.2008 в 21:40

    Спасибо за красивые картинки и внятное изложение :)

    В книжке про оптимизацию (в восьмой главе) дополнительно рассмотрены конфигурации для различных серверов, в том числе, и для Apache 2. Там и про сжатие, и про кэширование.

  2. adw0rd | 17.11.2008 в 11:44

    Спасибо за книгу и хороший отзыв, книгу обязательно почитаю и пропиарю ;)

  3. Mikhailov Anatoly | 16.12.2008 в 17:01

    Article about mod_deflate settings like on Amazon EC2 AMI

    railsgeek.com/2008/12/16/...mod_deflate-gzip

  4. Николай | 05.01.2009 в 14:44

    Хм... Какой кошмар!

  5. Сжимаем и минимизируем CSS при помощи Code Beautifier | Мастерская интернет-разработчика | 26.03.2009 в 00:21

    [...] меньше размером. Но, на этом не остановимся и включим сжатие CSS файлов, это ещё больше повысит скорость вашего сайта на [...]

  6. Плагины для Wordpress, которые использую я! | Мастерская интернет-разработчика | 26.03.2009 в 22:53

    [...] AddOutputFilterByType DEFLATE freebsd httpd Оставить комментарий | Comment RSS | Теги: WordPress Назад: MySQL. Количество вхождений подстроки в строку Далее: WordPress плагин Hyper Cache 2.0 [...]

  7. Seodigger.com заговорил по русски! | Мастерская интернет-разработчика | 29.03.2009 в 07:13

    [...] mod_deflate настройки [...]

  8. Андрей | 14.10.2011 в 10:21

    Да уж может конечно и просто написано, но не для таких чайникофф как я. Мне мой хостер уже 3 письмо пишет, что нагрузка в 2 раза превышает тарифную 50 чего то там. Вот попытаюсь счас воспользоваться вашими рекомендациями, если конечно не запорю че нить

  9. Андрей | 14.10.2011 в 13:16

    Вот, что мне ответил хостер на вопрос по поводу сжатия:

    Здравствуйте

    Функции сжатия у нас выполняет кеширующий прокси-сервер nginx. mod_deflate для Apache отключен, так как в нем нет необходимости.

    Также сжатие отдаваемой посетителю информации никак положительно не скажется на создаваемой скриптами нагрузке.

    Вам необходимо оптимизировать сами скрипты, например, включив кеширование или изменив алгоритмы их работы на более оптимальные.

  10. adw0rd | 14.10.2011 в 14:24

    Про Nginx тут adw0rd.ru/2009/nginx-gzip/

  11. adw0rd | 14.10.2011 в 14:27

    Андрей, вообщем либо код оптимизируйте, минимизуйте css/js (например developer.yahoo.com/yui/compressor/ и подобные решения, так же есть онлайн сервисы, см. adw0rd.ru/services/ (ищите слово «сжатие», там есть ссылки на js/css темы). Либо покупайте другой тариф или меняйте хостера

  12. Андрей | 15.10.2011 в 08:15

    adw0rd спасибо, попробую поковырять

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