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