| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Идеи про proxy_cache_min_uses.
 Приветствую.
 
 воскресенье, 20 января 2013 г. пользователь Pavel V.  писал:
 
 Здравствуйте, Михаил.
 Вы писали 20 января 2013 г., 5:13:12:
 
 > Здравствуйте.
 
 > Есть  прекрасная директива proxy_cache_min_uses . Она позволяет сильно
 > экономить  на  дисковой нагрузке, которую создают записывающиеся в кэш
 > файлы, к которым делается всего один запрос и которые потом вымываются
 > из кэша .
 
 > Было бы здорово развить идею и сэкономить ещё.
 
 > Например, proxy_cache_min_uses=2. Приходит запрос к кэшу, в кэше файла
 > нет,  и  это  первое обращение к файлу. Т.е. мы должны сначала скачать
 > файл  с  хранилища,  а  потом только отдать его в инет. И при этом сам
 > файл  в  кэш  не  положится.  Т.е.  кэширующий  сервер просто ненужный
 > посредник  между  браузером  и  хранилищем  файлов.  Было  бы возможно
 > оптимальнее  кэширующему  серверу  выдать  вместо  файла,  взятого  из
 > хранилища,   временный  редирект  на  хранилище.  Т.е.  отдавать  файл
 > напрямую  с  хранилища,  если  он  не  будет  класться в кэш. При этом
 > экономится и трафик и ресурсы кэширующего сервера.
 
 > Возможно подобное можно сделать уже сейчас, только я не знаю как.
 
 На мой взгляд, это возможно сделать уже сейчас как-то так (Idea only):
 
 Запрос приходит в локейшн, где уже прописано кеширование.
 Если в кеше есть ответ на запрос, то отдается ответ.
 
 Но проксирование запроса в этом локейшне настроено не на хранилище, а на "маршрутизирующий скрипт",
 и если в кеше ответа нет, то запрос улетает на "маршрутизирующий скрипт", который обсчитывает
 количество обращений, знает на каком хранилище лежит требуемый файл и тд
 
 В скрипте делаем проверки. Если количество обращений не достигло порога - отдаем временный редирект.
 Если достигло - отдаем X-Accel-Redirect на проксирование запроса на хранилище.
 Единственное, что потребуется - описать в локейшне, на который отправит
 X-Accel-Redirect, те же самые настройки кеширования, что и в основном локейшне, чтобы при повторном
 запросе данные отдались из кеша Nginx.
 
 X-Accel-Redirect ничем не отличается от существующего поведения самого nginx, только.
   
Возможно это же можно реализовать на встроенном perl..
 
 Всё это только теоретическая идея по возможной реализации, ничего не проверялось.
 
 --
 С уважением,
 Pavel                          mailto:pavel2000@xxxxxx
 
 _______________________________________________
 nginx-ru mailing list
 nginx-ru@xxxxxxxxx
 http://mailman.nginx.org/mailman/listinfo/nginx-ru
 _______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru 
 |