nginx + minify
Илья Шипицин
chipitsine на gmail.com
Пт Сен 2 10:27:39 UTC 2011
от пользователя до балансировщика канал как правило тонкий, с
задержками. если http keep-alive не включен, то на каждый новый запрос
будет открываться (и медленно разгоняться) tcp-сессия. на этом будут
максимальные потери скорости. pipelining-ом можно в первом приближении
пренебречь, раз уж мы не экономим ресурсы на склеивание css и js на
лету php-скриптом.
2 сентября 2011 г. 14:14 пользователь Maxim Dounin <mdounin на mdounin.ru> написал:
> Hello!
>
> On Fri, Sep 02, 2011 at 01:53:36PM +0600, Илья Шипицин wrote:
>
>> по идее keep-alive дает аналогичный эффект, что и склеивание файлов
>> (ну, оверхед на http-заголовках чуть выше), keep-alive браузерами
>> поддерживается из коробки.
>
> Не даёт. Даже если забыть про такие мелочи, как оверхед на
> заголовки и менее эффективное сжатие, - остаются лишние round
> trip'ы на каждый файл. Ибо pipelining - это совсем отдельная от
> keepalive штука, и из коробки он не включён.
>
> Maxim Dounin
>
>> а добиться высокой скорости отображения - на отдельных файлах проще
>> (по мере загрузки), чем одним большим файлом.
>>
>> расскажите, как вы количественно оценивали выгоду от склейки файлов ?
>> и как вы делаете minify ? из Makefile-а чем-нибудь типа Microsoft Ajax
>> Minifier или из PHP на лету ?
>>
>>
>> 1 сентября 2011 г. 1:35 пользователь Alexander Moskalenko
>> <alexander.moskalenko на gmail.com> написал:
>> > Даже не обязательно так, у нас написан специальный метод, который вызывается
>> > руками после изменений в CSS/JS.
>> > Метод генерит все необходимое, в том числе .gz
>> >
>> > 2011/8/31 Igor Sysoev <igor на sysoev.ru>
>> >>
>> >> On Wed, Aug 31, 2011 at 08:09:22PM +0300, Gena Makhomed wrote:
>> >> > On 31.08.2011 16:47, Igor Sysoev wrote:
>> >> >
>> >> > >> Чтобы склеивать эти все файлы вместе и
>> >> > >> передавать как один, запускается PHP script.
>> >> > >> Он создаёт соответствующий склеенный
>> >> > >> файл и в следующий раз читает его уже с
>> >> > >> диска. Работает это значительно
>> >> > >> быстрее чем если загружать все четыре
>> >> > >> CSS файла по отдельности через<link href...>
>> >> > >> для каждого.
>> >> >
>> >> > скорее всего, это http://code.google.com/p/minify/
>> >> > или что-то подобное.
>> >> >
>> >> > > Да, но какова цена этой склейки.
>> >> > > Почему бы не склеить их в статический файл для nginx'а,
>> >> > > да ещё и сделать .gz вариант ?
>> >> >
>> >> > таким образом будет проще настраивать, если для разных
>> >> > страниц надо подключать разные наборы стилей/скриптов.
>> >> >
>> >> > когда можно сделать 1 файл style.css/style.css.gz
>> >> > и 1 файл script.js/script.js.gz - тогда все просто,
>> >> > в момент выкладывания новой версии сайта на сервер
>> >> > скриптом просто заново перестраиваются эти 4 файла.
>> >> >
>> >> > а когда таких комбинаций файлов css/js десятки и сотни,
>> >> > то появляется большое количество ручной работы, которую
>> >> > не совсем понятно как можно автоматизировать без глюков.
>> >>
>> >> Зачем руками ? Есть Makefile.
>> >>
>> >> Например, nginx.org (не самый большой сайт, конечно) транслируется из XML
>> >> в HTML с помощью xsltproc. Потом rsync'ается в каталог, где для файлов
>> >> делается .gz, а потом это снова rsync'ается в каталог веб-сервера. Всё,
>> >> что нужно сделать после изменений (как в XML, так и в XSLT), это
>> >>
>> >> make all gzip copy
>> >>
>> >>
>> >> --
>> >> Игорь Сысоев
>> >> http://sysoev.ru
>> >>
>> >> _______________________________________________
>> >> nginx-ru mailing list
>> >> nginx-ru на nginx.org
>> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>> >
>> >
>> > _______________________________________________
>> > nginx-ru mailing list
>> > nginx-ru на nginx.org
>> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>> >
>> >
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
Подробная информация о списке рассылки nginx-ru