Настройка веб-серверов Apache, nginx и lighttpd. nginx. Обзор методов клиентской оптимизации
nginx
lighttpd
Достаточно популярный веб-сервер nginx (читается как «engine X») также имеет два модуля для управления сжатием:
ngx_http_gzip_module для сжатия «на лету» и ngx_http_gzip_static_module для статически сжатых файлов.
# nginx, ngx_http_gzip_module и ngx_http_gzip_static_module
# включаем сжатие «на лету»
gzip on;
# типы файлов, который будут сжиматься, text/html указывать не нужно,
# этот тип сжимается по умолчанию
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon;
# минимальный размер сжимаемого контента
gzip_min_length 1000;
# максимальное сжатие
gzip_comp_level 9;
# минимальная версия протокола HTTP в запросе, при которой будет
# происходить сжатие
gzip_http_version 1.0;
# разрешает выдачу заголовка «Vary»
gzip_vary on;
# разрешить сжатие проксируемых ответов, у которых есть заголовки
# «Expired», «Cache-contol: no-cache», «Cache-contol: no-store»,
# «Cache-contol: private» или «Authorization»
gzip_proxied expired no-cache no-store private auth;
# отключаем сжатие для MSIE < 6.0SP1, с версии 0.8.11 эта маска не включает # Internet Explorer 6.0SP2
gzip_disable msie6;
# к сожалению, у nginx нет способа запретить сжатие ответов какого-либо
# типа для обхода проблем в браузерах, но если у вас все файлы
# CSS и JavaScript оканчиваются, соответственно, на .css и .js,
# то можно ограничить их сжатие следующим способом
location ~* \.(css|js) {
# разрешаем отдавать вместо несжатого файла, предварительно # сжатый с постфиксом «.gz», если такой есть
gzip_static on;
# запрещаем сжатие файлов CSS и JS для проблемных браузеров
gzip_disable Firefox/([0-2]\.|3\.0);
gzip_disable Chrome/2;
gzip_disable Safari;
}