The OpenNET Project / Index page

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

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

"проброс на 80 порт в зависимости от имени сайта"  +1 +/
Сообщение от emfs (ok) on 01-Мрт-12, 14:56 
Дано:

1. шлюз с iptables
2. в сети несколько веб-серверов с разными адресами,
например,
192.168.1.100 - site1.domain.com
192.168.1.101 - site2.domain.com
192.168.1.102 - site3.domain.com, site4.domain.com
192.168.1.103 - site5.domain.com, site6.domain.com
...
и т.д.
3. На каждом из них есть веб-сервер с определённым сайтом

Задача:
В зависимости от запроса снаружи делать dst-nat на соответствующий сервер

site1.domain.com - должен идти на 192.168.1.100
site2.domain.com - должен идти на 192.168.1.101
site3.domain.com - должен идти на 192.168.1.102
site4.domain.com - должен идти на 192.168.1.102
site5.domain.com - должен идти на 192.168.1.103
site6.domain.com - должен идти на 192.168.1.103
и т.д.

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

Оглавление

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


1. "проброс на 80 порт в зависимости от имени сайта"  +1 +/
Сообщение от emfs (ok) on 01-Мрт-12, 15:04 
http://www.linux.org.ru/forum/admin/6558443
Форум - Admin - Несколько сайтов за одним ip на разных серверах.

Похоже рациональное решение - nginx только?

Несмотря на сложность решения через iptalbes, как сказали по ссылке, как такое через iptables сделать?

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

2. "проброс на 80 порт в зависимости от имени сайта"  –1 +/
Сообщение от PavelR (ok) on 01-Мрт-12, 15:53 
> http://www.linux.org.ru/forum/admin/6558443
> Форум - Admin - Несколько сайтов за одним ip на разных серверах.
> Похоже рациональное решение - nginx только?
> Несмотря на сложность решения через iptalbes, как сказали по ссылке, как такое
> через iptables сделать?

никак.


Найдите человека, который разжует вам:
- принципы пакетной передачи данных
- работу протокола HTTP
- работу файрволла

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

3. "проброс на 80 порт в зависимости от имени сайта"  +1 +/
Сообщение от emfs (ok) on 01-Мрт-12, 16:26 
>> http://www.linux.org.ru/forum/admin/6558443
>> Форум - Admin - Несколько сайтов за одним ip на разных серверах.
>> Похоже рациональное решение - nginx только?
>> Несмотря на сложность решения через iptalbes, как сказали по ссылке, как такое
>> через iptables сделать?
> никак.
> Найдите человека, который разжует вам:
> - принципы пакетной передачи данных
> - работу протокола HTTP
> - работу файрволла

Спасибо, уже сам почитал.

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

4. "проброс на 80 порт в зависимости от имени сайта"  +1 +/
Сообщение от Andrey Mitrofanov on 01-Мрт-12, 16:54 
> http://www.linux.org.ru/forum/admin/6558443
> Форум - Admin - Несколько сайтов за одним ip на разных серверах.
> Похоже рациональное решение - nginx только?

Про рациональное не знаю, а ProxyPass внутри VirtualHost умеют апачи и nginx (вероятно, и (все?!) другие популярные httpd).

Сквид тоже умеет (называется это там по-другому):
http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleW...
http://www.visolve.com/squid/whitepapers/reverseproxy.php#Co...

Чего у нас там ещё на уровне протокола... Delegate и прочие http-прокси?

> Несмотря на сложность решения через iptalbes, как сказали по ссылке, как такое
> через iptables сделать?

Другой уровень как бы... Оно про пакеты -- а ты ему про VirtualHosts.

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

5. "проброс на 80 порт в зависимости от имени сайта"  +1 +/
Сообщение от emfs (ok) on 02-Мрт-12, 15:34 
> Другой уровень как бы... Оно про пакеты -- а ты ему про
> VirtualHosts.

Ну да, понятно. Спасибо.

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

6. "проброс на 80 порт в зависимости от имени сайта"  +/
Сообщение от Pahanivo (ok) on 02-Мрт-12, 17:34 
>> Другой уровень как бы... Оно про пакеты -- а ты ему про
>> VirtualHosts.
> Ну да, понятно. Спасибо.

можно разрулить следующим образом (ничего особо не меняя в конфигурации):
пусть xxx.xxx.xxx.xxx - внешний ip, все имена siteN.domain.com дожны резолвить это ip!

далее делаем редирект (проброс)
xxx.xxx.xxx.xxx:80 -> 192.168.1.100:80 (все http сыпятся на первый сервак)
на данном серваке в конфиге индейца ловим нужные нам имена в конкретный vhost, в самом vhost дедаел редирект на этоже имя, но другой порт, разруливая тем самым имена по портам:

<VirtulHost *:80>
  ServerName site2.domain.com
  Redirec / http://site2.domain.com:81 #порт другой
</VirtualHost>

<VirtulHost *:80>
  ServerName site3.domain.com
  Redirec / http://site3.domain.com:82 #порт другой
</VirtualHost>

... и т.д.

А на шлюзе делаем соответсвующие пробросы:
xxx.xxx.xxx.xxx:81 -> 192.168.1.101:80
xxx.xxx.xxx.xxx:82 -> 192.168.1.102:80
...

т.е. первый сервак меняет порт в URL - а шлюзом делаем нужные пробросы
из минусов: несколько корявый url, и отказ всей схемы при выходе из строя первого сервака.

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

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

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




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

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