ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Load Balancing на основе входящих IP


  • To: <nginx-ru@xxxxxxxxx>
  • Subject: RE: Load Balancing на основе входящих IP
  • From: "Rasuk Evgeniy" <Rasuk@xxxxxxxx>
  • Date: Wed, 6 Apr 2005 13:55:48 +0400
  • Content-class: urn:content-classes:message
  • Thread-index: AcU6jZPu10I27UqRRd63mvRpMXmGKgAAK6Sw
  • Thread-topic: Load Balancing на основе входящих IP

Первое что мне приходит в голову это 

Load-balansing на основе mac адресов , подобное есть в Win2k AS 
Может кто подкинет идею как нечто подобное сделать под Unix ?? $)


-----Original Message-----
From: Majordomo Pseudo User [mailto:majordom@xxxxxxxxx] On Behalf Of Kpoxa
Sent: Wednesday, April 06, 2005 1:47 PM
To: nginx-ru@xxxxxxxxx
Subject: Re: Load Balancing на основе входящих IP

Подобная функциональность есть в циске, CSS1150X серия, аппаратный 
балансировщик нагрузки с жутко умным и настроиваемым алгоритмом балансировки. А 
вообще это нужно для всяких ява маших, беавеблоджиков и т.п., которые хранят 
сессии, некоторые переменные и т.д.  в оперативке. Правда цена этой циски.. ну 
около $10 000 у минимальной модели.

Igor Sysoev пишет:

> On Wed, 6 Apr 2005, Roman Golomidov wrote:
>
>> Хочу поинтересоваться в каком виде можно сделать обработку обращения 
>> конкретным процессом или скриптом всякий раз когда происходит 
>> обращение.
>>
>> Допустим есть 3 одинаковых скрипта, но каждый обрабатывает 
>> определенный объем всех запросов. Разделять их можно условно: один 
>> скрипт только IE, другой FireFox.
>> Или еще лучше по IP.
>> A.B.C.D
>> D mod 3 == 0 -> первый скрипт
>> D mod 3 == 1 -> второй скрипт
>> D mod 3 == 2 -> третий скрипт
>>
>> Самое важное, чтобы все повторные запросы приходили в тот же скрипт 
>> который их обрабатывал до этого.
>>
>> По большому счету, это что-то типа session, заведомо неточное, но 
>> простое и главное без кук и временных файлов. Для моих задач 100% 
>> точность не нужна, важна скорость и минимум нагрузочной работы любого 
>> вида.
>>
>> В голове 3 возможных варианта как это можно сделать.
>> 1. через rewrite посылать на конкретный FastCGI скрипт. Отрицательным 
>> в этом решении является достаточная хлипкость и некрасивость
>> конструкции: отдельный процесс на каждый скрипт, разные их названия 
>> (иначе FastCgi будет думать необходимость его запуска).
>> 2. на уровне системы сразу же отдавать кокретному серверу запрос и он 
>> уже дальше думает чего с ним делать. Я уверен что есть такая 
>> возможность или какое то решение. Но найти не смог - только убогие 
>> варианты с куками или с временными файлами.
>> 3. На уровне DNS - т.е. выдавать IP сервера из списка адресов в 
>> зависимости от запроса. Рабочее но не мобильное решение.
>>
>> Прошу подсказать как это сделать и можно ли вообще. Идеально было бы 
>> чтобы прямо nginx мог решить эту проблему в каком то виде.
>> Первоначальную логику можно было бы написать модулем, и уже по 
>> необходимости передавалось бы fastcgi.
>
>
> Не совсем понятно, как можно вообще сделать балансировку, привязывая 
> сервера к клиенту. И какой смысл привязывать, если не нужна 100% 
> точность ?
>
> Куки, на самом деле, правильное решение. Или сессии в УРЛе.
>
> Что касается привязки обработки к серверу на основании ip, то для 
> этого можно использовать ngx_http_geo_module, но пока с его помощью 
> нельзя делать rewrite.



--
тел./факс: +7 (812) 323-23-23 (Санкт-Петербург)
тел./факс: +7 (095) 737-09-77 (Москва)

С уважением, Нарманов Рустам.









 




Copyright © Lexa Software, 1996-2009.