try_files random

Alexandr Gomoliako zzz at zzz.org.ua
Sat Jul 21 16:46:34 UTC 2012


2012/7/21 arty777 <nginx-forum at nginx.us>:
> https://gist.github.com/3153263
>
>  Напишите пожалуйста к этому
> комментарии , не понятно до конца как
> пользоватся .

Допустим, есть три источника и три копии. Вносим их в @pool и
добавляем 6 путей в try_files:
...
@pool = ("src1", "src2", "src3", "src1copy", "src2copy", "src3copy");
...
try_files /$dice.txt /$dice.txt /$dice.txt /$dice.txt /$dice.txt
/$dice.txt =404;
...

$dice по кругу принимает значения из @pool пока не найдет файл. И при
следующем запросе продолжает с того же места. Т.е. если нашелся в
src2, то в следующий раз поиск начнется с src3 по кругу и src2 уже
будет проверяться в последнюю очередь.

А дальше уже на что фантазии хватит. Лучше всего через хэш функцию и
без try_files вообще, чтобы максимально эффективно использовать и кэш
фс и меньше всего дергать диски. Но тогда нужно изначально
раскладывать файлы на диски по этой хэш функции.


Подробная информация о списке рассылки nginx-ru