[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 2 веб-сервера на 1 ip
soniclord
Здравствуйте!
имеется 2 веб-сервера ubuntu server, 1 внешний ip, и управляемый роутер tp link. очень нужно посадит оба вебсервера на этот айпи: чтобы один сервер обрабатывал одни сайты а второй другие.... в голову пока что лезет только hosts, но как это реализовать я не знаю. подскажите пожалуйста путь к реализации



Спустя 10 минут, 21 секунда (22.07.2011 - 07:39) Семён написал(а):
Вам DNS сервер нужен батенька

Спустя 29 минут, 8 секунд (22.07.2011 - 08:08) soniclord написал(а):
объясните его работу на пальцах пожалуйста

Спустя 23 минуты, 48 секунд (22.07.2011 - 08:32) _KUL написал(а):
Теоретически:
Допусти имеем следующую картину

|--------| |-------|
---| модем |-----|свитч|------
|--------| |-------| |
| |----------|
| |сервер1|
| |----------|
|
| |---------|
| ---|сервер2|
|---------|
1. На модеме делаем нат 80-го порта на сервер1
2. На сервер1 настраиваем ворох правил dnat/snat через iptables, которые в свою очередь будут смотреть, если пакет пришёл от bym.ru значит идём на 80 порт сервер1, если от babam.ru то идём на сервер2.
3. Сервер2 получает запрос на 80 порт от сервера1, обрабатывает его, отдаёт его сервер1, тот отдаёт модему, модем пользователю. Если сервер1 получает запрос, то сам обрабатывает, отдаёт модему, тот пользователю.

На правах рекламы http://rukul.ru/ biggrin.gif

Спустя 2 часа, 41 минута, 33 секунды (22.07.2011 - 11:13) soniclord написал(а):
значит все таки без iptables не обойтись?

Спустя 1 час, 20 минут, 50 секунд (22.07.2011 - 12:34) waldicom написал(а):
А домены уже зарегены?

Спустя 54 минуты, 46 секунд (22.07.2011 - 13:29) soniclord написал(а):
да,конечно!

Спустя 13 минут, 14 секунд (22.07.2011 - 13:42) YVSIK написал(а):
NameVirtualHost site.com:80

<VirtualHost site.com:80>
DocumentRoot "D:/server/www"
ServerName site.com
</VirtualHost>

NameVirtualHost php.com.ua:80

<VirtualHost php.com.ua:80>
DocumentRoot "D:/server/www/php"
ServerName php.com.ua
</VirtualHost>

вот такая штука есть это на одном IP зарегено два домена
и в соответствии с запросом выбирается нужный домен
вот думаю это по моему вам и подойдет только все сделать на оборот
если я вас правильно понял

Спустя 5 минут, 19 секунд (22.07.2011 - 13:48) soniclord написал(а):
виртуальные хосты у меня настроены это не то

Спустя 4 минуты, 12 секунд (22.07.2011 - 13:52) YVSIK написал(а):
все что пришло в голову, ещё это уже в роутере происывать пути , когда пробрасываете видимость вахих хостов в инете
Цитата
если я вас правильно понял

Спустя 1 час, 50 минут, 5 секунд (22.07.2011 - 15:42) killer8080 написал(а):
Цитата (_KUL @ 22.07.2011 - 08:32)
2. На сервер1 настраиваем ворох правил dnat/snat через iptables, которые в свою очередь будут смотреть, если пакет пришёл от bym.ru значит идём на 80 порт сервер1, если от babam.ru то идём на сервер2.

Может я не прав, но разве iptables может обрабатывать http заголовки? А именно это и нужно, иначе как отличить какому сайту адресован пакет. Думаю тут надо копать в сторону mod_proxy, точнее его настроек. То есть принцип как предложил _KUL, но вместо портмапинга проксировать запросы ко второму серверу.


PS а есть ли вообще смысл в двух серверах unsure.gif

Спустя 2 часа, 25 минут, 44 секунды (22.07.2011 - 18:08) ADiel написал(а):
Может проще организовать кластер из этих двух серверов?

Спустя 15 часов, 48 минут, 19 секунд (23.07.2011 - 09:56) _KUL написал(а):
iptables имена доменов понимает, т.е. в правилах можно использовать, только вот любопытно, если один и тот-же ип имеет 2 домена, иптаблес будет по глупому переводить имя - ип, или он будет упираться в имя и от него уже строить. Аж самому стало любопытно, после выходных на работе попробую такой финт, если время будет huh.gif

Спустя 15 минут, 57 секунд (23.07.2011 - 10:12) killer8080 написал(а):
_KUL
тут нужно анализировать http заголовки, а это прикладной 7-й уровень модели оси, iptables работает на сетевом и транспортном уровне, 3-й и 4-й соответственно. Думаю таким путём ничего не выйдет, без прокси не обойтись.

Спустя 1 день, 21 час, 3 минуты, 50 секунд (25.07.2011 - 07:16) _KUL написал(а):
Теоретически, через iptables можно
-A PREROUTING -d 1.1.1.1/32 -p tcp -m string --string "http://site.local.ru" --algo kmp --to 65535 -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
-A POSTROUTING -s 192.168.0.2/32 -p tcp -j SNAT --to-source 1.1.1.1
Но на практике не удалось ...

Скорее всего, только через mod_proxy получится
<VirtualHost *>
ServerAdmin webmaster@mysite.ru
DocumentRoot /www/mysite.ru/www
ServerName www.mysite.ru
# все что просят c http://www.mysite.ru/shilded/ тянем с http://192.168.1.21/
ProxyPass /shilded/ http://192.168.1.21/
</VirtualHost>

или

<VirtualHost *>
DocumentRoot /var/empty # любой пустой существующий каталог
ServerName www.domain1.ru
ProxyPass / http://intra.mydomain.ru/
ProxyPassReverse / http://intra.mydomain.ru/
</VirtualHost>

з.ы. жестоко вырвано с http://www.opennet.ru/

Спустя 57 минут, 26 секунд (25.07.2011 - 08:13) Guest написал(а):
чем больше заморочек тем больше ве роятности что одна из них упадет.
тему можно закрывать - взял еще один ip
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.