ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rewrite "на" GZIP content-encoding.


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Rewrite "на" GZIP content-encoding.
  • From: Roxis <roxis@xxxxxxx>
  • Date: Wed, 24 Oct 2007 15:42:00 +0200
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:from:to:subject:date:references:in-reply-to:x-face:x-mailer:mime-version:content-type:content-transfer-encoding:content-disposition:message-id:sender; bh=3bDbI4awv+7nxthWtduGbTGuODQRw0MOU4H6NCygepU=; b=MfHcYEBql26qa9nGEnetHWsO+XaVHKg2zhU24lkB6QfDnYue16xhpNCdDljMqTrO6zSnO7nfUmylrhplEs2uiAR66nwF6nqwkhZ2X28jRoUyfx3yQk8cLTAXdDYJLmGA4JP99eh7C3Cuk72jf5NCOTS5Gw1e0ayhz5sLVThTbFA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:from:to:subject:date:references:in-reply-to:x-face:x-mailer:mime-version:content-type:content-transfer-encoding:content-disposition:message-id:sender; b=HdFDQG6t/YxwqqUeCBctHjBPUzufjncCYTtaV84pf1zmMWuHw39xvpNq5SY+c29zWTYV+EKsVCYtWZtqvmdNGlKlJg/+F0C5njkVF7PBQt5AZWzhUT6Fc6L8YGjn/+sAMYmGpJkQKlQEsDghIsgbrMkR86IlP5OWJWdWjEac4Vw=
  • In-reply-to: <1193232630.6837.15.camel@xxxxxxxxxxxxxxxxxx>
  • References: <1193232630.6837.15.camel@xxxxxxxxxxxxxxxxxx>

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;
}


 




Copyright © Lexa Software, 1996-2009.