Есть задача: выдавать файлы из кеша с помощью nginx, в обход php там, где это возможно. Кеш при этом в начальном состоянии пуст, и файлы попадают туда всё-таки с помощью какого- то php-скрипта. Я буду кешировать фотографии jpg, как пример. В конфиге nginx делаем секцию: location ~ \.jpg$ { root /home/www/host/www; expires modified +1h; try_files /cache${uri} /cache.php?q=${uri}; } В корне сайта создаем каталог /cache/ в котором будут храниться кешированные картинки и пишем скрипт cache.php, который делает кеш и возвращает картинку. Этот скрипт вызывается всего лишь один раз для каждой картинки, поскольку второй раз nginx найдет необходимый файл в кеше. $q=substr($_GET['q'],1); if (file_exists($q)) { copy($q,'./cache/'.$q); touch($q.'./cache/'.$q); header("Content-Type: ".mime_content_type($q)); header("Content-Length: ".filesize($q)); $fp = fopen($q, 'rb'); fpassthru($fp); }
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor