кеширование php скриптов
coramba
nginx-forum на nginx.us
Пн Янв 23 11:29:00 UTC 2012
Приветствую!
Сори если вопрос нубский, но перечитав
кучу статей решения не нашел.
Задача следующая есть php скрипт
выдающий png-картику. Актуальность
картинки 2-3 часа, после чего надо
генерировать новую. Изначально был
написан вариант при котором полученная
картинка сохранялась в файл, а потом
раздавалась nginx'ом как статика. Но такой
вариант неудобен тем, что нужно
"ручками" удалять полученные файлы
каждые три часа.
Тогда возникла идея кешировать nginx'ом
ответ скрипта на требуемое время. Но
реализовать задумку получилось только
частично. Работа скрипта явно
кешируется (содержимое картинки не
меняется в течении срока кеширования),
но при этом браузер получает код 200, а не
304 который требуется, и соответственно
запрашивает картинку повторно.
Подскажите пожалуйста в чем ошибка?
фагмент конфига:
==============8<----------------------------------------------------------------
fastcgi_cache_path /var/cache/nginx levels= keys_zone=wholepage:64m;
location ~*WoT/(.+)/dogtag.png {
...
add_header Cache-Control private;
add_header Expires 10m;
expires 10m;
rewrite ^/WoT/(.+)/dogtag.png$ /WoT/dogtag.php?text=$1;
}
location ~*WoT/dogtag.php {
...
add_header Cache-Control private;
add_header Expires 10m;
expires 10m;
fastcgi_cache wholepage;
fastcgi_cache_valid 304 30s;
fastcgi_cache_valid any 1m;
fastcgi_cache_key "$request_method|$http_if_none_match|$host|$request_uri";
fastcgi_hide_header "Set-Cookie";
fastcgi_ignore_headers "Cache-Control" "Expires";
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/tmp/fastcgi-www-img.socket;
}
==============8<----------------------------------------------------------------
Версия nginx 0.8.54
С уважением, Денис
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,221536,221536#msg-221536
Подробная информация о списке рассылки nginx-ru