2 сервера на 80 порту — как реализовать?

Есть 1 внешний IP адрес, и локальная сеть, в которой 2 веб-сервера (Apache) в локальной сети стоит роутер Dir620 открыт 80 порт, у первого сервера IP 192.168.0.5 у второго сервера IP 192.168.0.6

Необходимо, чтобы при запросе сайта типо site1.domain.ru открывался именно тот вируал хост, который прописан на другом сервере. Возможно ли сделать так, чтобы 2 веб-сервера работали одновременно и при запросе заходили на нужный сайт?
  • Вопрос задан
  • 12945 просмотров
Пригласить эксперта
Ответы на вопрос 6
desperadik
@desperadik
Истина где-то рядом.
НЕ надо никаких вторых вторых айпи. Просто на одном из серверов поднимаете mod_proxy для Apache на 80 порт (например для debian: sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls), а виртхост с сайта у этого сервера переводите на какой-нибудь другой порт. (напр. 12345) После настраиваете конфиги прокси (советую для каждого вирт хоста создавать отдельный конфиг):
Примеры для debian:
a2enmod proxy
touch proxy.site.local (напр. для 192.168.0.5)
vi proxy.site.local
<VirtualHost *:80>
        ServerAdmin des@fortoster
        DocumentRoot "/var/www/test"

        ServerName      proxy.site.local
        ServerAlias     site1.domain.ru www.site1.domain.ru

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyVia full

        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>

        ProxyPass / http://127.0.0.1:12345/
        ProxyPassReverse / http://127.0.0.1:12345/
</VirtualHost>

Сохраняем.
После уже подключаем к прокси другой сайт (192.168.0.6)
touch proxy.site2.local
vi proxy.site2.local

ServerAdmin des@fortoster
DocumentRoot "/var/www/test2"

ServerName proxy.site2.local
ServerAlias site2.domain.ru www.site2.domain.ru

ProxyRequests Off
ProxyPreserveHost On
ProxyVia full


Order deny,allow
Allow from all


ProxyPass / http://192.168.0.6:80/
ProxyPassReverse / http://192.168.0.6:80/

И не забыть указать в ports.conf порт локального сайта.

Теперь если к вам из вне будут обращаться например site1.domain.ru будут попадать на 192.168.0.5 (апач перебросит на локалхост), а если site2.domain.ru - то на 192.168.0.6. (апач проверит по алиасу и перебросит на 0.6:80)

И ещё, обязательно на роутере перебросьте 80 порт на тот IP на котором стоит Apache с прокси. Если будут вопросы: sk desperadik2
Ответ написан
Tortway
@Tortway
Привет, прошло уже больше года. Ответь пожалуйста, ты смог реализовать это? Если да, то как? У меня та же самая задача.
Ответ написан
@portfelio
Исключительно силами DIR-620 нет.
Ответ написан
Комментировать
t_q_l
@t_q_l
Интересная личность
Предположу, что такое можно реализовать, если перепрошить Dir620 с помощью OpenWRT и поставить туда nginx.
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
На dir620, возможно, запущен lighttpd. Тогда в его конфиге можно сделать так.

Если лайти там нет - то поможет только установка nginx на один из серверов, который будет проксировать запросы для нужного http_host на другой сервер. Весь трафик с роутера, соответственно, нужно будет пробрасывать на сервер с nginx.
Ответ написан
Комментировать
@ZoomZoom Автор вопроса
Если возьму 2 внешний адрес? как можно будет реализовать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы