ПРОЕКТЫ 


  АРХИВ 


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: Как отдать файл с другого сервера?



Евгений Васильев пишет:
Здравствуйте, 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, в зависимости от того, удалил бэкенд файл с диска или нет.




 




Copyright © Lexa Software, 1996-2009.