ПРОЕКТЫ 


  АРХИВ 


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: Как заставить ngx http gzip stat ic module работать правильно ?



Hello!

On Tue, Feb 16, 2010 at 05:48:35PM -0500, chs wrote:

> Нужно грузить заранее заархивированные файлы, а если требуемого файла нет, то 
> тогда передвать запрос на бэкенд .
> Но проблема в том, что в моём варианте Content-Encoding: gzip не добавляется 
> и в браузер выводится зазипованный контент
> 
> Что я делаю не так?
> 
> server {
>   .....
>   gzip_static      on;
> 
>   location / {
>     
>    try_files /cache/$uri.gz @test;

gzip_static добавляет '.gz' к URI сам, и только если клиент 
поддерживает gzip.  Т.е. ему для работы нужно два файла 
- обычный и .gz.

try_files в свою очередь тоже меняет uri на соответствующий 
найденному файлу.  

Т.е. для запроса /file будет так:

1. try_files найдёт /cache/file.gz и поменяет uri на /cache/file.gz

2. gzip_static попытается искать /cache/file.gz.gz, не найдёт и от запроса 
   откажется

3. static отдаст file.gz

Чтобы всё работало - нужно иметь на диске не-gz файлы и 
проверять их существование, как-то так:

    location / {
        root /path/to/cache;
        gzip_static on;
        try_files $uri @fallback;
    }

либо не использовать try_files, а делать fallback по 404, как-то 
так:

    location / {
        root /path/to/cache;
        gzip_static on;
        error_page 404 = @fallback;
    }

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.