Ускорение загрузки страниц и файлов с помощью 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>
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>
…
…
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>
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
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.
AddOutputFilterByType вполне дружит с кучей маймов в одной строке и таким образом брюки превращаются в:
AddOutputFilterByType DEFLATE text/plain text/xml application/xhtml+xml etc…
Комментарий от n-other — Сентябрь 15, 2006 @ 8:29 am
Комментарий от mp3 — Март 4, 2008 @ 12:05 am
__________________
http://russkrock.ru/
Комментарий от андрюха — Сентябрь 2, 2008 @ 7:16 pm
Комментарий от Ellay — Сентябрь 25, 2008 @ 12:29 am
_____
http://www.security2.ru/
Комментарий от чудик — Сентябрь 28, 2008 @ 5:58 pm
_____
http://fasthemes.com/
http://autonado.ru/
Комментарий от васьтка — Сентябрь 28, 2008 @ 6:02 pm
Комментарий от Василий — Октябрь 18, 2008 @ 6:03 pm
Комментарий от Матвей — Октябрь 18, 2008 @ 6:04 pm
Комментарий от Тимур — Октябрь 18, 2008 @ 6:04 pm
Комментарий от hosting — Октябрь 22, 2008 @ 1:03 pm
Комментарий от hosting — Октябрь 22, 2008 @ 1:03 pm
Комментарий от Серж — Октябрь 22, 2008 @ 11:25 pm
http://info-sovet.ru/
Комментарий от Серж — Октябрь 22, 2008 @ 11:27 pm
Заработок это круто
Комментарий от Lops — Январь 22, 2009 @ 7:45 am
Комментарий от Питачок — Февраль 27, 2009 @ 1:48 pm
Комментарий от Продавец-консультант — Февраль 28, 2009 @ 4:11 am
Комментарий от Alexin — Февраль 28, 2009 @ 7:06 pm
Комментарий от Игры детей — Март 2, 2009 @ 2:40 pm
Комментарий от Сеня Меломан — Март 4, 2009 @ 2:36 am
Комментарий от Тамара — Март 18, 2009 @ 11:21 pm
Комментарий от Антон — Март 28, 2009 @ 1:50 am
Комментарий от Елизавета — Апрель 17, 2009 @ 12:22 pm