On Fri, Sep 21, 2007 at 11:32:41AM +0400, Sukhachev Andrew wrote:
> > У клиентов для memcached-а есть возможнсть класть в него сжатую
> > gzip-ом информацию.
> > При хранении html-я в memcached-е это сжатие довольно эффективно.
>
> Кстати очень интересный вопрос. Правда меня он интересует несколько в
> другом контексте:
>
> 1. Есть статика (js,css,..) которая отдается nginx'ом. Можно-ли каким-то
> образом ее заранее
> gzip-нуть, чтобы потом nginx просто тупо отдавал запакованный вариант,
> если браузер
> поддерживает gzip. Т.е. типа:
> location /js/ {
> root /path/to/js/orig;
> if ( gzip-is-supported ) {
> root /path/to/js/gzipped;
> }
> }
Можно сделать переменую $gzip_supported, которая принимала бы истинное
значение в зависимости от параметров gzip-модуля и возможности браузера
принимать сжатый ответ.
> 2. Если upstream отдает уже gzip-нутый ответ, что сделает nginx если:
> a. Браузер поддерживает gzip (оптимально было бы просто отдать as-is)
> b. Браузер не поддерживает gzip (оптимально было бы распаковать)
nginx отдаёт, как есть.
> 3. (В продолжение к п.2) А если включена proxy_store? Можно как-нибудь в
> proxy_store хранить
> 2 варианта - gzip/orig и также отдавать их в зависимости от браузера.
Нет.
> Вы конечно можете сказать, что gzip это не слишком затратная операция :) Но
> когда канал не очень
> хороший, приходится ставить gzip_level=9, и проц грузится достаточно
> неслабо...
Для сжатия достаточно уровня 1. Если 1 сожмёт в 2-4 раза, то 9 - в 2.5-5.
А процессор будет есть раза в два больше.
--
Игорь Сысоев
http://sysoev.ru