Как включить сжатие gzip для сайта

Для придания максимальной скорости работе и сохранения высокого качества сайта необходимо минимизировать размеры передаваемых данных, сохранив при этом весь объем информации. Именно по этой причине разрабатываемые специалистами методики их эффективного использования высоко ценятся в IT сфере. 

Для того, чтобы вы смогли понять для чего необходимо производить архивацию данных на электронном ресурсе компании и как правильно настроить этот процесс. Для начала разберемся в основных видах алгоритмах архивирования.
Основные группы алгоритмов сжатия данных

Несмотря на огромное количество алгоритмов сжатия данных (АСД), сегодня выделяют алгоритмы 3 групп:
1. Поточные (ПАСД). Специалисты включили в данный класс АСД, входящие в семейство RLE, LZ* и многих других. Для кадрирования данных при их помощи используют информацию об имеющихся последовательностях, которые встречались ранее. Подобным образом осуществляют свою деятельность gzip и bzip.

2. Энтропийного сжатия. Алгоритмы статистического сжатия (АСС) производит сокращение размеров файлов при помощи частот, с помощью которых символы, задействованные в сообщении, встречаются в его рамках. В данную группу входят алгоритмы кодирования префиксного и арифметического типа. Для их работы используются деревья Шеннона-Фанно, Хаффмана и секущих.

3. Разностные. В их число включены алгоритмы преобразования информации (словари также включены в этот список). Методы работы данной группы практически не производят сжатие данных, однако, их использование сильно упрощает дальнейший процесс уменьшения их объемов при помощи ПАСД и АСС. Алгоритм VCDIFF использует в своей работе словари и разностное кодирование данных.

Поточные алгоритмы

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

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

Алгоритмы LZ, название которых состоит из заглавных букв фамилий их создателей (А. Лемпела и Я. Зива). В отличие от RLE данные ПА производит кодировку последовательности символов, встречавшихся ранее. В процессе обработки информации при помощи этих алгоритмов в динамическом режиме происходит составление таблицы со списком ранее встречавшихся последовательностей и присвоенных им кодов. Они производят более качественное (по сравнению с RLE) сжатие данных.

Самым востребованным вариантом реализации необходимых действий при помощи LZ методов является gzip-сжатие информации.

Производим настройку gzip на сайте

Gzip производит оптимальное сжатие информации на странице сайта в результате которого продолжение расхода места на процессоре теряет свою эффективность, поскольку такие издержки имеют линейную прогрессию. То есть, с увеличением степени сжатия данных растет количество времени, затрачиваемого на осуществление этого процесса.
Однако, при работе с Gzip необходимо учитывать то, что пропорциональный рост эффективности его задействования наблюдается только до 5-степени сжатия, после чего вырастает только на доли процента. Ведь Gzip-сжатие для nginx использует следующие директивы:

gzip on;
gzip_comp_level 7;
gzip_vary on;
gzip_types text/css text/javascript application/javascript. 

При этом:
gzip_vary – передает заголовок для прокси, производящих кеширование, указывая при этом особенности данного процесса со сжатыми ресурсами;
gzip_types – показывает типы файлов, которые необходимо сжать на сервере.

Сжатие nginx

 

Его также называют статистическим и производят с целью минимизации расхода ресурса процессора. Для его осуществления можно использовать ранее сжатые файлы gzip-формата, располагающие дополнительным расширением .gz. Благодаря тому, что они сжимаются только единожды, для их обработки применяют самую высокую степень сжатия информации.

Для использования АСС в nginx необходимо использовать поддержку модуля gzip_static, активируемого при помощи директивы конфигурации gzip_static on.

Архивация в Apache

 
Этот сервер использует для отгрузки сжатых файлов модуль mod_deflate. При наличии его активация на сервере производится так:

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript
DeflateCompressionLevel 7
</ifmodule>

Процесс архивации данных при помощи IIS

Осуществите вход в раздел «Свойства элемента»-«Веб узлы» при помощи диспетчера служб IIS, и перейдите на вкладку «Службы» или используйте для осуществления этого действия данную конфигурацию:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary> <Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>

Осуществляем проверку сжатия

Данное действие можно реализовать при помощи двух популярных программ: теста на gzip и Google PageSpeed Insights. Если сжатия данных на сайте осуществлено не было, вы будете уведомлены об этом соответствующим сообщением.
Выводы

Как видите, произвести сжатие данных и оптимизировать работу сайте совсем не сложно. Этот процесс вполне возможно осуществить самостоятельно, однако, следует помнить об оптимальной степени архивации информации, составляющей показатели от 5 до 7.

Метки записи:

,