Re: каскад проксирующих серверов
Валентин Бартенев
vbart at nginx.com
Thu Mar 7 11:41:43 UTC 2013
On Thursday 07 March 2013 15:03:59 Anatoly Mikhailov wrote:
> On Mar 7, 2013, at 9:54 AM, Валентин Бартенев <vbart at nginx.com> wrote:
> > On Wednesday 06 March 2013 23:35:04 Anatoly Mikhailov wrote:
> >> добрый день,
> >>
> >> Вопрос балансировки нагрузки не дает мне покоя несколько дней, пока
> >> склоняюсь к использованию Nginx в роли балансировщика. Таким образом
> >> будет каскад Nginx - (Nginx - Unicorn) x 5.
> >>
> >> У нас связка Nginx+Unicorn на нескольких независимых серверах разного
> >> назначения (Main, Admin, API, Mobile-API), но сейчас, ввиду растущей
> >> нагрузки, есть необходимость основное (Main) приложение поставить за
> >> балансировщиком (условно Nginx-А), получив 5 бэк-энд серверов (условно
> >> Nginx-B), которые и будут непосредственно проксировать на Unicorn.
> >
> > [...]
> >
> > А в чем необходимость Nginx-B стоять перед Unicorn-ом?
> > Почему бы не проксировать с Nginx-A на Unicorn напрямую?
>
> Ребята из Github не советуют так делать:
> http://stackoverflow.com/questions/14082243/unicorn-multiple-machines-setu
> p А если серьезно, то как в этом случае отдавать статику, если она не на
> CDN?
>
Дополнительный промежуточный nginx тоже добавляет оверхэда, и тут вопрос скорее
в том, какой из них больше (от установки соединения между nginx-ом и unicorn по
сети, или от дополнительного nginx-а с keepalive).
А в чём проблема отдавать статику? Мне казалось, что создание помойки из кода и
статики - это исключительно черта php-программистов, и у рубистов должно быть с
этим всё в порядке, в том смысле, что отличить запрос к статике можно ещё на
балансировщике без stat() (и проксировать далее, либо на nginx, либо на
unicorn).
--
Валентин Бартенев
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru