Чем эффективно оптимизировать (Minify, Combine, Gzip) JS и CSS файлы на веб-сервере NGINX?

Доброго времени суток.
Подскажите, пожалуйста, мне самый эффективный способ для Minify, Combine и GZip файлов CSS и JS.

До сегодняшнего дня и использовал Apache и модуль Mod_pagespeed. Честно говоря, он не очень эффективно собирал все CSS-файлы и JS-файлы в один, но Minify и GZip успешно делал.

Сейчас сервер с Apache иногда очень сильно загружается, поэтому я занялся установкой NGINX, и вот теперь ищу эффективный способ для сжатия и объединения CSS и JS файлов.

Может ли NGINX делать Minify, Combine и GZip?
Или, может быть, это стоит делать какими-то сторонними средствами, чтобы NGINX отдавал уже готовые GZIP-файлы?

Буду очень признателен за любые советы по этой теме.
  • Вопрос задан
  • 7700 просмотров
Решения вопроса 2
MonkAlbino
@MonkAlbino
Фронтенд разработчик
Непонятно зачем делать конкатенацию и минификацию средствами веб-сервера на лету. Неужели у вас каждый раз генерируются уникальные стили и скрипты?
Проще на этапе генерации (если всё-таки это один раз, а не постоянно) сконкатинировать, минифицировать и сжать, а уже в таком виде отдавать.
Собственно для первых двух вариантов есть Grunt, Gulp и прочие сборщики, либо специфичные для вашей системы.
У Nginx есть директива gzip_static, которая позволяет отдавать заранее минифицированный файл.
Ответ написан
Комментировать
sim3x
@sim3x
gulpjs.com
make
bash
...

Если js, css будут по 10 метров, то и крутым браузерам может поплохеть

combine->minimize->gzip -9
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@Ramallah
Grunt, Brunch и тому подобное...
Ответ написан
Комментировать
@portfelio
Расскажите подробнее, чем вас не устраивает mod_pagespeed. Стоит ли вам советовать альтернативу https://github.com/pagespeed/ngx_pagespeed Еще есть вариант написать свою процедуру на Perl или Lua и использовать ее для ваших целей работы с файлами.

Я лично не сторонник "на лету"шной оптимизации файлов. Лучше, когда этим занимается отдельный инструмент, а вот Gzip и отдачу вполне можно отдать Nginx :)
Ответ написан
inside22
@inside22 Автор вопроса
Спасибо вам всем большое.
О существовании Grunt и Gulp я не знал... попробую установить Gulp , чтобы он собирал JS и CSS файлы от Wordpress, а дальше чтобы сжатые файлы отдавал NGINX.
Ответ написан
Комментировать
golotyuk
@golotyuk
Для wordpress есть плагин Wp-minify для минификации. Еще очень хороший минифаер YUI compressor (Java либа).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы