Компрессия gzip на веб-сервере
Материал из 1GbWiki.
Содержание |
Компрессия gzip на виртуальном хостинге
Суть - оно уже есть, дополнительно ничего делать не надо. Настроено хорошо и для большинства случаев подходит.
IIS версии 6
- Компрессия статики - включена
- Компрессия динамики - НЕ включена
IIS сжимает (по запросу браузера) файлы следующих расширений:
- .htm
- .html
- .txt
- .js
Вносить индивидуальные параметры компрессии для конкретных сайтов нельзя, только глобально для сервера. По запросу можно добавить расширение в этот список.
IIS версии 7 и 7.5
- Компрессия статики - включена
- Компрессия динамики - НЕ включена
IIS сжимает (по запросу браузера) файлы следующих MIME-типов:
- text/*
- message/*
- application/x-javascript
- application/atom+xml
- application/xaml+xml
На уровне сайта можно включать или откючать компрессию, вносить изменения в типы для сжатия нельзя. Пример файла web.config для управления сжатием (включить\выключить):
<configuration> <system.webServer> <urlCompression doStaticCompression="false" doDynamicCompression="false" /> </system.webServer> </configuration>
Apache
- Компрессия статики - НЕ включена
- Компрессия динамики - НЕ включена
Компрессию статики на общем сервере включить к сожалению нельзя. Сжатие динамики тоже, но есть приятное исключение -
Сжатие динамики на PHP
В целом PHP может самостоятельно сжимать отдаваемые страницы, причем делается там это очень просто. К сожалению, это сжатие требует знания специфики конкретного сайта на PHP. Если у вас сайт на популярной CMS, то 99% из них умеют включать gzip сами, просто найдите там соответствующую опцию.
Если вы сами разрабатываете сайт, то можно попробовать самый простой метод - такой PHP код в начало кода вашего сайта: ob_start("ob_gzhandler", 9);
Для подробностей прочтите документацию по PHP.
Сжатие динамики на PERL, Ruby и так далее
Обычно включается в готовом приложении с помощью его собственных настроек.
Если очень надо сжимать статику
Единственный случай, когда это действительно полезно - сжимать статические .css или .js файлы (например, библиотеку jquery). Поскольку трудности со сжатием на общем веб-сервере Apache популярны, к счастью, есть простой обходной путь - сжать файлы заранее и положить их на сервер в сжатом виде. Что делать дальше - ясно из следующего примера (вторая часть):
http://www.ardamis.com/2010/07/11/compress-files-without-mod_gzip-or-mod_deflate/