>
>
>
> 8 января 2009 г. 3:00 пользователь Maxim Dounin <
mdounin@xxxxxxxxxx>написал:
>
> > Hello!
> >
> > On Thu, Jan 08, 2009 at 01:18:52AM +0300, Борис Долгов wrote:
> >
> > > Добрый день!
> > > Хотелось бы как-нибудь хитро заставить nginx балансировать нагрузку между
> > > несколькими жесткими дисками (между несколькими document_root)
> > > Вижу несколько решений:
> > > 1. Поднять еще 7 nginx'ов на разных портах, сделать балансинг по tcp.
> > > Наверно, плохо.
> > > 2. Поднять еще 7 server'ов в одном nginx'e, сделать баланскинг по tcp.
> > > Наверно, плохо.
> > > 3. Написать что-то легкое на fastcgi, которое будет отдавать
> > > X-Accel-Redirect. Наверно, плохо?
> > > 4. Написать что-то на встроенном perl'e. Хорошо ли? Как сделать
> > равномерную
> > > балансировку при его использовании, не прибегая к внешним средствам.
> > > 5. Написать модуль, который будет сам менять document_root. Наверно, не
> > > осилю.
> > >
> > > Есть ли какие-то другие способы? Что из вышеперечисленного посоветуете?
> > > Файлы небольшие, не больше 7 мегабайт.
> >
> > Я бы попробовал что-нибудь вроде
> >
> > root /path/to/$disk;
> >
> > и заставил переменную $disk принимать [[псевдо]случайные] значения
> > от 0 до 6 соответственно. С особым цинизмом это можно сделать
> > rewrite'ом, как нибудь так:
> >
> > set $disk 0;
> > if ($remote_addr ~ /\.1$/) { set $disk 0; }
> > if ($remote_addr ~ /\.2$/) { set $disk 1; }
> > ...
> > if ($remote_addr ~ /\.255$/) { set $disk N; }
> >
> > (главное - Игорю не показывать :)). Ну соответственно варианты
> > оптимизации - выставлять переменную встроенным перлом, сделать
> > модуль выставляющий переменную.
> >
> > Maxim Dounin
> >
> >
>
>
> --
> С уважением, Борис Долгов.
> icq 77556665
> e-mail
boris@xxxxxxxxxxx