Rewrite "на" GZIP content-encoding.

Aliaksey Kandratsenka alk at tut.by
Wed Oct 24 17:30:30 MSD 2007


Добрый день, 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 знает
способ сделать это лучше?







More information about the nginx-ru mailing list