Ускорение загрузки страниц и файлов с помощью mod_deflate на Apache 2.0


C помощью модуля сервера Apache mod_deflate вы можете ускорить для клиента загрузку файлов с вашего веб-сервера. Модуль mod_deflate предоставляет выходной фильтр DEFLATE, который может сжимать данные, отправляемые сервером клиенту.
Это уменьшает время и объем данных, пересылаемых по сети, что в результате делает загрузку контента браузером быстрее.
Для использования mod_deflate сперва убедитесь, что модуль включен в дистрибутив вашего HTTP сервера Apache (по умолчанию он установлен во всех современных дистрибутивах).

Настройка сервера

Откройте файл конфигурации httpd.conf:

# vi httpd.conf
Добавьте следующую строку:
LoadModule deflate_module modules/mod_deflate.so
Добавьте следующую директиву в блок <Location />
<Location />
AddOutputFilterByType DEFLATE text/html text/plain
text/xml


</Location>
Эта конфигурация будет сжимать только текстовые, html и xml файлы. А вот конфигурация mod_deflate одного из моих рабочих серверов:
<Location />


AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html


</Location>
После внесения изменений сохраните файл конфигурации и перезапустите сервер Apache. Теперь все файлы этих типов будут сжиматься.
# /etc/init.d/httpd restart
Также вы можете задать определенный каталог, где должны сжиматься все файлы. Например, каталог /static/help/:
<Directory "/static/help">
SetOutputFilter DEFLATE
</Directory>
В реальной жизни нет необходимости сжимать такие файлы, как mp3 или файлы картинок. Вот пример конфигурации, запрещающей использовать сжатие для подобных файлов:
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
И помните, что сжатие данных приводит к дополнительной нагрузке на CPU и память, как вашего сервера, так и машины клиента. Поэтому вам надо четко определить то, что необходимо сжимать.
И от себя приведу еще несколько важных моментов, затронутых в комментариях к статье:
  • Для проверки работы mod_deflate можно использовать команду lwp-request:
    lwp-request -e -H ‘Accept-Encoding: gzip’ http://www.yoursite.com/
  • Модуль mod_deflate заменил в Apache 2.0 модуль mod_gzip, используемый в Apache 1.3.
  • mod_deflate работает со всеми современными браузерами, но некоторые старые версии браузеров не поддерживают обработку сжатых данных. Для их обхода используйте следующую конфигурацию:
    <Location />
    SetOutputFilter DEFLATE
    # Netscape 4.x
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    # Netscape 4.06-4.08
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    </Location>
    Подробнее можно посмотреть в документации к mod_deflate.
Источник: nixCraft
Перевод: ApacheDev.ru

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • News2.ru
  • NewsLand.ru
  • del.icio.us
  • BobrDobr.ru
  • Ma.gnolia
  • Digg
  • Reddit
  • Technorati
  • Slashdot
  • Netscape
  • DZone
  • ThisNext
  • Furl
  • YahooMyWeb
Опубликовано в: Модули Apache Сентябрь 14, 2006

22 Комментариев »

  1. совсем не обязательно городить многократно повторяющиеся директивы.
    AddOutputFilterByType вполне дружит с кучей маймов в одной строке и таким образом брюки превращаются в:
    AddOutputFilterByType DEFLATE text/plain text/xml application/xhtml+xml etc…

    Комментарий от n-other — Сентябрь 15, 2006 @ 8:29 am

  2. Согласен с n-other

    Комментарий от mp3 — Март 4, 2008 @ 12:05 am

  3. А мне понравилось! Зачетная статья!!! 5 баллов
    __________________
    http://russkrock.ru/

    Комментарий от андрюха — Сентябрь 2, 2008 @ 7:16 pm

  4. щас редко где такой встретишь

    Комментарий от Ellay — Сентябрь 25, 2008 @ 12:29 am

  5. ДА класс! четкая статья! 5 баллов!
    _____
    http://www.security2.ru/

    Комментарий от чудик — Сентябрь 28, 2008 @ 5:58 pm

  6. Ничего аткого что я не знал ! г! нов се равно =спасибо!
    _____
    http://fasthemes.com/
    http://autonado.ru/

    Комментарий от васьтка — Сентябрь 28, 2008 @ 6:02 pm

  7. http://www.trubprovod.ru/

    Комментарий от Василий — Октябрь 18, 2008 @ 6:03 pm

  8. http://www.cemen.info/

    Комментарий от Матвей — Октябрь 18, 2008 @ 6:04 pm

  9. oneone111111!!!!!!

    Комментарий от Тимур — Октябрь 18, 2008 @ 6:04 pm


  10. Комментарий от hosting — Октябрь 22, 2008 @ 1:03 pm

  11. http://prof-server.com

    Комментарий от hosting — Октябрь 22, 2008 @ 1:03 pm

  12. статья то что надо. спасибо

    Комментарий от Серж — Октябрь 22, 2008 @ 11:25 pm

  13. зачетная статья
    http://info-sovet.ru/

    Комментарий от Серж — Октябрь 22, 2008 @ 11:27 pm

  14. За4от)))
    Заработок это круто

    Комментарий от Lops — Январь 22, 2009 @ 7:45 am

  15. Благодарю за инструкцию, но не помогло :(

    Комментарий от Питачок — Февраль 27, 2009 @ 1:48 pm

  16. 2Питачок в чем конкретно не помогло ?

    Комментарий от Продавец-консультант — Февраль 28, 2009 @ 4:11 am

  17. А что тут трудного то? Как дети блин, чесслово.

    Комментарий от Alexin — Февраль 28, 2009 @ 7:06 pm

  18. Спасибо, спасибо большое, хорошая информация для меня!!

    Комментарий от Игры детей — Март 2, 2009 @ 2:40 pm

  19. Вон как люди благодарят, чего не пишите больше ?

    Комментарий от Сеня Меломан — Март 4, 2009 @ 2:36 am

  20. Для использования mod_deflate как можно убедиться, что модуль включен в дистрибутив моего HTTP сервера Apache?

    Комментарий от Тамара — Март 18, 2009 @ 11:21 pm

  21. А мне понравилась статья! Мог бы каждый так пояснять в Москве, было бы отлично:)

    Комментарий от Антон — Март 28, 2009 @ 1:50 am

  22. А что тут трудного то? Как дети блин, чесслово.

    Комментарий от Елизавета — Апрель 17, 2009 @ 12:22 pm

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

You must be logged in to post a comment.

Работает на WordPress