вопрос собравшимся

NomadRain NomadRain at rambler.ru
Tue Aug 25 18:29:34 MSD 2009


Hi!

Если я правильно понимаю, то необходимо входящий запрос, проксировать на 
бэкэнд, а ответ бэкэнда в то-же соединение посылать напрямую клиенту, а не 
сквозь прокси.

На прикладном уровне такая схема очевидно нереализуема. "Не трогая "систему"" 
тоже.

Реализовать такое наверное можно на сетевом уровне, грамотно отрулив 
маршрутзацию на бэкэндах, но не уверен, что будет работать. Итак навскидку 
имеем:

Клиент: внешний IP X.X.X.X
Прокси (DNAT): внешний IP Y.Y.Y.Y, внутренний IP a.a.a.a
Бэкэнд1: внутренний IP a.a.a.1, алиас Y.Y.Y.Y
Бэкэнд2: внутренний IP a.a.a.2, алиас Y.Y.Y.Y

Бэкэндам прописываем отправлять исходящие пакеты на дефолтный маршрут с 
исходящим адресом Y.Y.Y.Y. В лнуксе это можно сделать при помощи iproute2.

Входящие пакеты от клиента приходят в виде:
Source IP: X.X.X.X
Dest IP: Y.Y.Y.Y

Прокси заменяет в них адрес назначения на a.a.a.* в соответстви со своей 
политикой балансировки. То-есть:
Source IP: X.X.X.X
Dest IP: a.a.a.1 например.

Пакеты идут на бэкэнд1, тот в свою очередь шлёт ответные пакеты в виде:
Source IP: Y.Y.Y.Y
Dest IP: X.X.X.X

Таким образом, ответный трафик идёт от бэкэндов нарпямую к клиентам, в обход 
прокси.

Куда тут пихнуть нгинкс, чтобы тема ушла из разряда оффтопиков и надо-ли оно - 
решайте сами.

On Вторник 25 августа 2009 13:30:35 Антон Кирюшкин wrote:
> Необходимо реализовать нарисованную схему. Вопрос, кто-нибудь представляет
> как штатными средствами web-серверов это можно осуществить?

-- 
http://nomadrain.com/
NomadRain <NomadRain at rambler.ru>


More information about the nginx-ru mailing list