Приветствую.<br><br>воскресенье, 20 января 2013 г. пользователь Pavel V.  писал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, Михаил.<br>
<br>
Вы писали 20 января 2013 г., 5:13:12:<br>
<br>
> Здравствуйте.<br>
<br>
> Есть  прекрасная директива proxy_cache_min_uses . Она позволяет сильно<br>
> экономить  на  дисковой нагрузке, которую создают записывающиеся в кэш<br>
> файлы, к которым делается всего один запрос и которые потом вымываются<br>
> из кэша .<br>
<br>
> Было бы здорово развить идею и сэкономить ещё.<br>
<br>
> Например, proxy_cache_min_uses=2. Приходит запрос к кэшу, в кэше файла<br>
> нет,  и  это  первое обращение к файлу. Т.е. мы должны сначала скачать<br>
> файл  с  хранилища,  а  потом только отдать его в инет. И при этом сам<br>
> файл  в  кэш  не  положится.  Т.е.  кэширующий  сервер просто ненужный<br>
> посредник  между  браузером  и  хранилищем  файлов.  Было  бы возможно<br>
> оптимальнее  кэширующему  серверу  выдать  вместо  файла,  взятого  из<br>
> хранилища,   временный  редирект  на  хранилище.  Т.е.  отдавать  файл<br>
> напрямую  с  хранилища,  если  он  не  будет  класться в кэш. При этом<br>
> экономится и трафик и ресурсы кэширующего сервера.<br>
<br>
> Возможно подобное можно сделать уже сейчас, только я не знаю как.<br>
<br>
На мой взгляд, это возможно сделать уже сейчас как-то так (Idea only):<br>
<br>
Запрос приходит в локейшн, где уже прописано кеширование.<br>
Если в кеше есть ответ на запрос, то отдается ответ.<br>
<br>
Но проксирование запроса в этом локейшне настроено не на хранилище, а на "маршрутизирующий скрипт",<br>
и если в кеше ответа нет, то запрос улетает на "маршрутизирующий скрипт", который обсчитывает<br>
количество обращений, знает на каком хранилище лежит требуемый файл и тд<br>
<br>
В скрипте делаем проверки. Если количество обращений не достигло порога - отдаем временный редирект.<br>
Если достигло - отдаем X-Accel-Redirect на проксирование запроса на хранилище.<br>
Единственное, что потребуется - описать в локейшне, на который отправит<br>
X-Accel-Redirect, те же самые настройки кеширования, что и в основном локейшне, чтобы при повторном<br>
запросе данные отдались из кеша Nginx.</blockquote><div><br></div><div><span style>X-Accel-Redirect ничем не отличается от существующего поведения самого nginx, только.</span><br dir="ltr"></div><div><span></span> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Возможно это же можно реализовать на встроенном perl..<br>
<br>
Всё это только теоретическая идея по возможной реализации, ничего не проверялось.<br>
<br>
--<br>
С уважением,<br>
 Pavel                          mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'pavel2000@ngs.ru')">pavel2000@ngs.ru</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'nginx-ru@nginx.org')">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote>