Re: Не работает fastcgi кеширование

Maxim Dounin mdounin на mdounin.ru
Вт Дек 21 19:25:32 MSK 2010


Hello!

On Tue, Dec 21, 2010 at 04:51:09PM +0159, fenix at intercharge.net wrote:

> Здравствуйте !
> 
> nginx version: nginx/0.8.54
> 
> Прописан fastcgi cache:
> 
>     fastcgi_cache_path  /opt/nzb_cache    levels=1:2    keys_zone=nzbcache:10m inactive=60d max_size=10g;
>     fastcgi_temp_path   /opt/nzb_cache_tmp;
> 
> Прописан fastcgi хост, на котором все по location заварачивается на index.php:
> 
>    server {
>         listen frontend;
> 
>         server_name www;
> 
>         access_log  logs/access.log upstr;
> 
>         location ~ \.php$ {
>                 fastcgi_cache_key $uri$is_args$args;
>                 fastcgi_cache nzbcache;
> 
>                 fastcgi_cache_valid 200 302 24h;
>                 fastcgi_cache_min_uses 1;
>                 fastcgi_ignore_headers "Cache-Control" "Expires";
> 
>                 fastcgi_pass   fcgihost:8888;
>                 fastcgi_index  index.php;
> 
>                 include /opt/nginx/conf/fastcgi_params;
> 
>                 fastcgi_param  SCRIPT_FILENAME /vhosts/www/htdocs$fastcgi_script_name;
>                 fastcgi_param  DOCUMENT_ROOT   /vhosts/www/htdocs;
>         }
> 
>         location / {
>                  rewrite  ^/.*   /index.php?q=$1 last;
>         }
> 
>    }
> 
>    данный хост в ответ на GET запрос, обращается к php-fpm и тот
>    отдает ему xml, который и должен быть положен в кеш nginx.
> 
> В результате по логу, ни один из ответов не попадает в кеш, постоянно
> MISS, даже при одинаковых повторных запросах (fastcgi_cache_min_uses 1):
> ...
> [21/Dec/2010:15:37:48 +0100] /file/a43348c0-e2c2-8694-9fc0-465e3f889a4d/ "MISS" "0.515"
> [21/Dec/2010:15:37:52 +0100] /file/a2ae833e-8763-82a9-a708-58fe3ed30414/ "MISS" "0.431"
> [21/Dec/2010:15:37:58 +0100] /file/a21c4774-4a65-fe63-e712-077af144d30a/ "MISS" "0.422"
> [21/Dec/2010:15:38:00 +0100] /file/80d766da-c8aa-144c-aea7-3fc559304f76/ "MISS" "0.424"
> [21/Dec/2010:15:38:01 +0100] /file/80d766da-c8aa-144c-aea7-3fc559304f76/ "MISS" "0.419"
> [21/Dec/2010:15:38:11 +0100] /file/80d766da-c8aa-144c-aea7-3fc559304f76/ "MISS" "0.408"
> [21/Dec/2010:15:38:12 +0100] /file/80d766da-c8aa-144c-aea7-3fc559304f76/ "MISS" "0.375"
> ...
> 
> На всякий случай запретили php-fpm генерировать заголовки
> "Cache-Control" "Expires", которые выше и так должны игнорироваться.
> 
> Также установили мониторинг обращений к самому кешу (каталогу) /opt/nzb_cache на
> предмет создания файлов, каталогов с помощью - inotifywait - кеш не
> неполняется. error.log на предмет ошибок - пустой.

Помимо Cache-Control и Expires - есть ещё всякие другие заголовки, 
которые тоже могут запрещать кеширование ответа.  В случае php - 
наиболее вероятный кандидат Set-Cookie.

А вообще - как делать debug log рассказано тут:

http://nginx.org/en/docs/debugging_log.html

Maxim Dounin



Подробная информация о списке рассылки nginx-ru