Как отдать файл с другого сервера?

Alex Vorona voron at amhost.net
Thu Mar 20 00:49:27 MSK 2008


Евгений Васильев пишет:
> Здравствуйте, Alex.
> 
> Вы писали 19 марта 2008 г., 17:50:45:
> AV> http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_store
> 
> Я так понял что в этом случае nginx будет сохранять все файлы, пока
> диск не переполнится.
> А нельзя ли там какнить указать лимит кэша? скажем 10 гиг.

если позволяют ресурсы, включить atime, отключить open_file_cache и файлы, к 
которым не было обращений > N дней, удалять из кэша например через find
> и более старый файл переписывается новым.
а вот это уже сложнее будет похоже. Как вариант отдавать download-запрос на 
fastcgi/http-бэкенд, который будет делать http HEAD запрос на win-сервер и 
сверять mtime локального файла и Last-Modified и, в случае если на win-сервере 
файл новее, удалять его из кэша nginx и делать на него X-Accel-Redirect, 
попадающий в location /fetch/. Если же файлы одинаковые по времени модификации 
либо другому нужному критерию, бэкенд выдаёт X-Accel-Redirect на location 
images, который отдаёт файл из кэша. Либо бэкенд выдаёт всегда одинаковый XAR на 
images, в котором срабатывает или не срабатывает редирект по 404-й ошибке на 
fetch, в зависимости от того, удалил бэкенд файл с диска или нет.






More information about the nginx-ru mailing list