Для комментариев зарегистрироваться или войти
Либо используйте ваш Open_ID, например аккаунт гугл, яндекс или ЖЖ
 

20 марта 2010 :Как настроить Gzip на вашем сайте

Итак, сегодняшняя статья из класса "must read"! В которой я расскажу целых четыре чрезвычайно простых способа настроить gzip, для тех кто ещё не знает как это сделать. Когда я на работе вижу ссылку на html размером в пару мегабайт (который сжимается до 200 кб), я не знаю смеяться или плакать, вот эти способы:

  1. Если ваш сайт полностью статичен, т.е. не написан на php, и в качестве веб-сервера используется apache, вы можете создать .htaccess файл в главной директории сайта следующего содержания:
    # сжимать весь текст и html:
    AddOutputFilterByType DEFLATE text/html text/plain text/xml

    # или, сжимать определённые типы файлов, по расширению:
    <Files *.html>
    SetOutputFilter DEFLATE
    </Files>
  2. Второй способ, пригодится если ваш сайт использует PHP, и по каким-либо причинам вы не можете/хотите менять исходный код. Если в качестве веб-сервера у вас используется apache, то в данном случае вы опять таки можете создать .htaccess файл с содержанием:
    php_value output_handler ob_gzhandler
    Это включит в качестве пост-обработки для ваших скриптов функцию ob_gzhandler, эта функция сама проверяет наличие в запросе клиента заголовков accept_encoding, и т.п.
  3. Третий способ, то что используют наши программисты, это использование "буфера выхода" (output buffering) в PHP. Для этого вам надо использовать следующие функции:
    // В начале файла:
    ob_start("ob_gzhandler");
    // В конце файла:
    ob_end_flush();
  4. Четвёртый способ, это настройка соответствующего поведения у Nginx, он подойдёт если в качестве веб-сервера у вас используется что-то отличное от апача, например Lighttpd, или если вся статика отдаётся напрямую им, минуя apache.
    Включаем GZip в Nginx, в файле /usr/local/etc/nginx/nginx.conf
        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;
             ...
         
         }
        
    Полное описание всех директив модуля http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html.
     

Если вы изменяете конфиг апача или nginx, то не забудьте перезапустить соответствующий сервис.

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


я буду очень признательна если вы прокоментируете эту статью

Комментарии:


Чтобы оставить комментарий нужно зарегистрироваться или войти.
Либо волшебно используйте ваш логин в Google, Яндекс, рамблер или ЖЖ чтобы войти через Open_ID
Оставить комментарий как:
Гость:
Сообщение:
Подпишитесь на статьи через RSS

15 самых популярных статей: