LinuxForum.Fans
Тема

Раскидать сайты по серверам

Автор: XliN 19 сообщений 4530 просмотров
#258460

Собственно такой вопрос.
Есть шлюз. Допустим с IP 111.111.111.111. Айпишник белый. Я его получил от прова.
На нем в iptables прописано такое правило

text
iptables -t nat -I PREROUTING 1 -p tcp -d 111.111.111.111 --dport 80 -j DNAT --to-destination 192.168.1.127:80

Следовательно все кто ломится на мой шлюз с 80 порта, перекидываются на 192.168.1.127, где стоит apache2 и с помощью VirtualHost держит два сайта. И показывает тот который нужно.

Возникла задача поднять еще сайт, но на другом сервере. Не на 192.168.1.127. Как это сделать? Имя сайта будет браться от субдомена одного из двух рабочих сайтов.
Например test.ru на первом сервере, а mail.test.ru на другом.

#258503

Думаю, что здесь надо будет делать редирект не только на шлюзе в iptables, но и на том сайте, куда направит iptables. Через .htaccess или аналогичные решения.
Например, у меня есть пара внешних IP-шников (два провайдера). Оба роутера прокидывают 80-й порт на внутренний apache. А тот - тривиально редиректит тотально вызовы на сайт фирмы, который находится у хостера во внешнем мире. Редиректит, если задать ему просто дефолтный адрес, без указания конкретного "каталога".

#258519

Пример можно? Никогда с этим не работал.

#258520

Для решения отлично подойдет nginx на шлюзе. Убрать правило из iptables и повесить nginx на обработку запросов с 80 порта.

"Cruiser78" написал:
Думаю, что здесь надо будет делать редирект не только на шлюзе в iptables, но и на том сайте, куда направит iptables. Через .htaccess или аналогичные решения.

Если apache, то mod_proxy.

Конфигурировать как-то так:

text

<VirtualHost 192.168.1.127:80>
    ServerName domain.ru    
    ProxyRequests On
    ProxyVia On
    ProxyPass / http://192.168.1.140/
    ProxyTimeout 30
</VirtualHost>

Но документацию вам читать в любом случае, так как подходящего конфига под рукой у меня нет и тут могут быть ошибки.

#258522
neol написал:
Для решения отлично подойдет nginx на шлюзе. Убрать правило из iptables и повесить nginx на обработку запросов с 80 порта.

+1
Примеры

#258526

На шлюзе стоит именно nginx. Нужно его заставить проксировать 80 порт и редиректить два сайта на один ip, а третий на другой.
Если вы это делали и можете облекчить мне жизнь, киньте пример. Буду благодарен.
Из за того что не могу решить проблему, почти собрался переносить все сайты в одно место.

#258528

Поробую сам. Потом вопросы задам.

#258531

wiki - ngx_http_rewrite_module сам правда с регулярными выражениями не сильно подружился пока... :)

#258984
newzenon написал:
wiki - ngx_http_rewrite_module сам правда с регулярными выражениями не сильно подружился пока... :)

А рерайт там зачем? :)

XliN

Там все просто с nginx, на два разных сайта (сколько бы доменов на них ни висело) создается два контекста server (аналог VirtualHost в httpd) и делается proxy_pass ip_of_httpd_server. Погугли про связку httpd+nginx, просто помни, что хттпед может находиться на другой машине спокойно :)

#258987

Уже не актуально. )) Один сервер ликвидировал и переехал полностью на mageia server.

#258999

А как же CentOS, какая такая Mageia, ты что o_O

#259011
"Ka3aH6ac" написал:
А как же CentOS, какая такая Mageia, ты что

Променял великий и ужасный CentOS на магию. Как же так.. теперь не ждать статей и ответов в разделе Red Hat Linux, Fedora, ASP Linux, Cent OS

#259017

Магея только для сайтов и фтп. Все из-за созданного репозитария русского сообщества. На родном дистре это делается легче.
З.Ы. Остальные сервера у меня как были на центе, так и остались. Получилась сборная centos, ubuntu, mageia ну и windows 2003
upd: а крутится это все на , centos + kvm и centos + citrix xen

#259037

А у меня только Win машины :D
Сам если честно Cent не использую пока.

#259042
Ka3aH6ac написал:
А у меня только Win машины :D
Сам если честно Cent не использую пока.

Что мешает? Шлюз хотя бы нужно Linux если нет cisco.

#259109

cisco это бренд =). линуксовый роутер умеет в разы больше законченной цисковой железяки, которая к тому же заточена под определенный уровень сетевой модели (исключение разве что cisco me3400, которая мультиуровневая). А вообще не в тему беседы даже это ;).


По сабжу - пробрасывайте до второго сервера другой порт (например 81). На первом сервере делаете нужный виртуалхост, а там редирект на нужный адрес, но с портом 81. iptables, к сожалению, не умеет мультиплексировать запросы.

#259116

У нас сейчас на шлюзе стоит ISA 2004 + TrafficQuota.
Доступ в Интернет дается на членстве по определенной группе в доменном контроллере Win2003.
Почтарь работает на Win2003 + Mdaemon + Winroute FireWall.
Ну и 1С 8.2 крутится на Win2003 + SQL 2008.
Вот такие вот пироги...

#259117

А Шлюз я бы перевел на связку Iptables+Squid+AD
Только что делать если надо учитывать весь трафик пользователей по всем портам, ставить квоты на месяц.

#259237
Denlookh написал:

А рерайт там зачем? :)

Думал о чем-то своем, не ту ссылку дал, конечно же HttpProxyModule

Модуль ngx_http_proxy_module позволяет передавать запросы другому серверу.

Войдите или зарегистрируйтесь, чтобы ответить.