Бортовой журнал Ктулху

Сжатие файлов js и css в nginx

Современные браузеры поддерживают сжатие передаваемого файла, т.к. он является частью спецификации протокола HTTP 1.1. Сжатие текстовых форматов (CSS, JS и HTML) может уменьшить их объем до 70%.

Перед отправкой ответа сервер сжимает данные. Браузер при получении сжатого ответа разжимает его и показывает результат. для проверки, использует ли сайт компрессию, используйте, например, Gzip Checker или это.

Сжимать следует все текстовые файлы: HTML XML CSS Javascript txt.

Для включения сжатия достаточно в nginx.conf добавить эти строки:

server {
***
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
}
***
}

В .htaccess Apache (если настроена связка) добавить:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Также должен быть подключен модуль mod_deflate. Уровень сжатия Gzip поддерживает несколько уровней сжатия — от быстрого и худшего до медленного и самого компактного результата. В Nginx его можно регулировать таким образом: gzip_comp_level 5; # поддерживает значения от 1 (худший) до 9 (лучший) Имеет смысл использовать значение 5, как среднее для получения лучшего результата и снижения нагрузки на процессор.