Экономия трафика — включение gzip | Вебмастер DataLife Engine

Ранее я уже описывал параметры VDS на котором находится мой DLE варезник. Сейчас я хотел бы поговорить о трафике. Итак месячная норма трафика для моего тарифного плана 70 Гб. Но вот беда, от хостера в начале месяца пришел счет в котором просят оплатить 10$ за перерасход трафика. Посмотрел статистику и ужаснулся, за предыдущий месяц моим сайтом было израсходовано 120 Гб. Жуть. И это при посещаемости в том месяце ниже 5000 уникальных хостов. А посещаемость сайта постоянно растет. Встала задача как-то уменьшить расход трафика с целью экономии денежных средств на хостинг. Решение было достаточно простым —  включение сжатия в ngnix. Таким образов месь исходящий трафик с сервера начал сжиматься, что привело к снижению суточного трафика на тот момент с 5 до 4 Гб. Т.е в день я начал экономить по 1 Гб.

Немного о том, что такое gzip:

Gzip (сокращение от GNU zip) — утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Лемпеля — Зива. Используется в основном в UNIX-системах, в ряде которых является стандартом де-факто для сжатия данных. Была создана Jean-Loup Gailly и Марком Адлером (Mark Adler). Версия 0.1 была впервые выпущена 31 октября 1992 г., а версия 1.0 — в феврале 1993 г.

В соответствии с традициями UNIX-программирования, gzip выполняет только одну функцию: сжатие и распаковка одного файла, он не умеет упаковывать несколько файлов в один архив. При сжатии к оригинальному расширению файла добавляется суффикс .gz. Для упаковки нескольких файлов обычно их сначала архивируют в один файл утилитой tar, а потом этот файл сжимают gzip. Таким образом, сжатые архивы обычно имеют двойное расширение .tar.gz.

С другой стороны, указанная особенность дает gzip возможность работать с непрерывным потоком данных, упаковывая/распаковывая их «на лету». Это широко применяется в UNIX-системах: при помощи перенаправления потоков можно работать с упакованными файлами так же легко, как и с распакованными (распаковывая их в памяти при чтении и упаковывая при записи); многие UNIX-утилиты имеют встроенную поддержку этого механизма.

В последнее время gzip активно применяется для сжатия Интернет-трафика. Сейчас gzip поддерживает большинство современных браузеров. Благодаря повсеместному внедрению скриптового языка программирования php, количество сайтов с поддержкой gzip постоянно увеличивается. Но, к сожалению, некоторые современные брандмауэры и утилиты блокирования интернет-рекламы, такие как Outpost и Ad Muncher, на данный момент не поддерживают gzip, что приводит к увеличению потребляемого трафика при посещении сайтов, поддерживающих данную технологию.

 Теперь о том, как я включил gzip в ngnix. Для этого я отредактировал конфигурационный файл ngnix.config (в FreeBSD он находится /usr/local/etc/ngnix) добавив в него строчку:

gzip on;

Для более тонкой настройки Вы можете воспользоваться следующей заготовкой охватывающей несколько директив управления модулем ngx_http_gzip_module предназначенного для сжатия трафика методом gzip используя ngnix.

 http {

     …

     # Включение модуля

    gzip             on;

     # Минимальная длина ответа, при которой модуль будет жать, в байтах

    gzip_min_length  1000;

 # Разрешить сжатие для всех проксированных запросов

    gzip_proxied     any;

 # MIME-типы которые необходимо жать

    gzip_types       text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json;

 # Запрещает сжатие ответа методом gzip для IE6

    gzip_disable     «msie6»;

 # Уровень gzip-компрессии

    gzip_comp_level  8;

     …

 }

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

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

Еще нет никаких комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *