The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Подскажите механизм по раскидыванию запросов от разных клиентов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы / Linux)
Изначальное сообщение [ Отслеживать ]

"Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от bomnop on 09-Фев-11, 09:46 
Добрый день!

необходимо реализовать работу следующей схемы:

у нас в dmz есть сервер1 (ip 172.16.0.1) и сервер2 (ip 172.16.0.2).
снаружи есть внешние клиент1 (ip 1.1.1.1) и клиент2 (ip 2.2.2.2)

(на самом деле серверов ОЧЕНЬ много, клиентов тоже очень много)

по сути каждый клиент работает со своим сервером (т.е. клиент1 с сервером1, клиент2 с сервером2). каждому клиенту выдаётся наше (самописное) ПО для работы с своим сервером. затыка состоит в том, чтобы облегчить поддержку этого ПО при обновлении и инсталляции. Наш отдел разработки ПО хочет, чтобы настройки ВСЕХ клиентов были ОДИННАКОВЫМИ.
Т.е. в dmz поднимается какой-то прокси сервер, на который настраиваются все клиенты. И этот проксирующий сервер должен в зависимости от ip адреса клиента перенаправлять запрос на нужный сервер.

я посмотрел squid (на предмет cache_peer, но как я понял это не подходит)

есть ли какое то подходящее решение?

P.S. понятно, что лёгкое решение - это на каждом клиенте держать свои настройки для этого ПО, но тут вопрос организационный и он уже к сожалению решён и не обсуждаем.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от Serge (??) on 09-Фев-11, 10:42 
revers proxy
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от bomnop on 09-Фев-11, 11:12 
> revers proxy

squid - тоже revers proxy и что?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от Serge (??) on 09-Фев-11, 12:14 
>> revers proxy
> squid - тоже revers proxy и что?

squid не единственный реверс прокси. Есть и другие, более заточенные на балансинг - varnish, nginx. Можно организовать авторизацию на реверс-прокси и редирекшен на основе login'a. Короче - почитали б про функционал _разных_ проксей, если с технологией уже определились.

Если балансинг нужен только на основе L3, то и LVS пойдет - он гораздо проще и производительнее. Да и кластеризуется на-раз.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от bomnop on 09-Фев-11, 12:19 
>>> revers proxy
>> squid - тоже revers proxy и что?
> squid не единственный реверс прокси. Есть и другие, более заточенные на балансинг
> - varnish, nginx. Можно организовать авторизацию на реверс-прокси и редирекшен на
> основе login'a. Короче - почитали б про функционал _разных_ проксей, если
> с технологией уже определились.
> Если балансинг нужен только на основе L3, то и LVS пойдет -
> он гораздо проще и производительнее. Да и кластеризуется на-раз.

вы наверное не поняли. мне не нужен "балансинг". балансировка полагает как минимум 2 (ДВА) сервера на которые должны попадать запросы пользователя. У меня же связка клиент1 <-> сервер1, клиент2 <-> сервер2, и т.д... нет тут балансировки. по поводу пользователя - данное ПО не предполагает работу с авторизацией и аутентификацией. такое вот ПО :)

я так думаю что это становится проще сделать с помощью iptables.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от desenix (ok) on 09-Фев-11, 14:16 
> я так думаю что это становится проще сделать с помощью iptables.

так и делайте с помощью iptables http://www.opennet.me/docs/RUS/iptables/

типа так

iptables -t nat -A PREROUTING -s 1.1.1.1 -p tcp  -j DNAT --to-destination 172.16.0.1
iptables -t nat -A PREROUTING -s 2.2.2.2 -p tcp  -j DNAT --to-destination 172.16.0.2

Естественно правила можно скриптом генерить.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Подскажите механизм по раскидыванию запросов от разных клиентов"  +/
Сообщение от Andrey Mitrofanov on 09-Фев-11, 14:49 
> у нас в dmz есть сервер1 (ip 172.16.0.1) и сервер2 (ip 172.16.0.2).
> снаружи есть внешние клиент1 (ip 1.1.1.1) и клиент2 (ip 2.2.2.2)

http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleW...

cache_peer ip.of.server1 parent 80 0 no-query originserver name=server1
cache_peer_access server1 deny foo

cache_peer ip.of.server2 parent 80 0 no-query originserver name=server2
cache_peer_access server2 allow foo
cache_peer_access server2 deny all


В nginx, наверное, было бы примерно --

geo  $backend  {
  1.1.1.1 172.16.0.1
  2.2.2.2 172.16.0.2;
}

+

proxy_pass         http://$backend/;

...
...

>каждому клиенту выдаётся наше (самописное) ПО для работы с

В постановке задачи, кстати, не заявлено, что протокол-таки http.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру