Rewrite "=?utf-8?q?=D0=BD=D0=B0?=" GZIP content-encoding.
Roxis
roxis at list.ru
Wed Oct 24 17:42:00 MSD 2007
On Wednesday 24 October 2007, Aliaksey Kandratsenka wrote:
> Добрый день, all.
>
> У меня в определенном каталоге есть файлы all.js (хорошо пакуемый
> javascript) и all.js.gz (он же, только пожатый gzip'ом). Я хочу чтобы
> вместо all.js можно было отдавать all.js.gz (с правильным
> content-encoding, разумеется). Мне удалось это сконфигурировать так:
>
> # переписывать только если клиент готов принимать gzip
> if ($http_accept_encoding ~* gzip) {
> rewrite "/javascripts/all.js" "/javascripts/all.js.gz";
> }
>
> # если спакованой версии нету переписать назад
> if (!-f "/opt/phase1/public/javascripts/all.js.gz") {
> rewrite "/javascripts/all.js.gz" "/javascripts/all.js";
> }
>
> location = /javascripts/all.js.gz {
> # поставить правильные content-{type, encoding}
> add_header Content-Type text/javascript;
> add_header Content-Encoding gzip;
> }
>
> В данном случае очень просится поддержка либо вложенных IF'ов или
> поддержка коньюнкции в IF'ах. Без этого приходится прибегать к
> переписыванию "назад". В связи с этим у меня вопрос. Может ALL знает
> способ сделать это лучше?
у меня такой вариант:
set $gz_cache "true";
if ($http_accept_encoding !~ gzip) {
set $gz_cache "false";
}
if (!-f "/www/gz/$requst_file") {
set $gz_cache "false";
}
if ($gz_cache == "true") {
root "/www/gz";
add_header Content-Encoding gzip;
}
More information about the nginx-ru
mailing list