Давайте рассмотрим, как можно настроить некоторые серверы для выдачи текстового содержания в виде архивов. Ниже приведен участок конфигурационного кода для Apache 1.3, позволяющий подключить gzip
-сжатие. Основные директивы даны с комментариями.
<IfModulemod_gzip.c> # включаем gzip mod_gzip_on Yes # если рядом с запрашиваемым файлом есть сжатая версия с расширением .gz, то # будет отдана именно она, ресурсы CPU расходоваться не будут mod_gzip_can_negotiate Yes # используем при статическом архивировании расширение .gz mod_gzip_static_suffix .gz # выставляемзаголовок Content-Encoding: gzip AddEncoding gzip .gz # выставляем минимальный размер для сжимаемого файла mod_gzip_minimum_file_size 1000 # и максимальный размер файла mod_gzip_maximum_file_size 500000 # выставляем максимальный размер файла, сжимаемого прямо в памяти mod_gzip_maximum_inmem_size 60000 # устанавливаем версию протокола, с которой будут отдаваться gzip-файлы # на клиент mod_gzip_min_http 1000 # исключаем известные проблемные случаи mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]" # устанавливаем сжатие по умолчанию для файлов .html mod_gzip_item_include file \.html$ # исключаем .css / .js файлы (о них подробнее в следующем разделе) mod_gzip_item_exclude file \.js$ mod_gzip_item_exclude file \.css$ # дополнительно сжимаем другие текстовые файлы mod_gzip_item_include mime ^text/html$ mod_gzip_item_include mime ^text/plain$ mod_gzip_item_include mime ^httpd/unix-directory$ # отключаем сжатие для картинок (не дает никакого эффекта) mod_gzip_item_exclude mime ^image/ # отключаем 'Transfer-encoding: chunked' для gzip-файлов, чтобы # страница уходила на клиент одним куском mod_gzip_dechunk Yes # добавляем заголовок Vary для корректного распознавания браузеров, # находящихся за локальными прокси-серверами mod_gzip_send_vary On </IfModule>