LINUX.ORG.RU
ФорумAdmin

Несколько сайтов за одним ip на разных серверах.


0

1

Здравствуйте.
Подскажите, пожалуйста, как реализовать?
Есть сервер с Debian 6, kvm.
Хочу чтобы было 2 виртуальных машины (vm1, vm2), каждая, чтобы обслуживала свой сайт (example1.com, example2.com).
Главное, чтобы все сайты открывались по 80 порту. Нестандартные порты не нужны!

Гугл выдаёт только про разные сайты, но обслуживаются одним сервером с одним апачем, но мне это не нужно.

Deleted
NameVirtualHost 127.0.0.1 
 
<VirtualHost 127.0.0.1> 
ServerName mysite1.com 
ServerAlias www.mysite1.com 
DocumentRoot  /home/htpdocs/mysite1/  
... 
 
</virtualHost> 
 
<VirtualHost 127.0.0.1> 
ServerName mysite2.com 
ServerAlias www.mysite2.com 
DocumentRoot  /home/htpdocs/mysite2/  
... 
 
</virtualHost> 

NameVirtualHost - реальный айпи.

papochka
()

В Вашем случае этого будет недостаточно, придется запускать прокси (nginx, apache c proxypass) на хост машине, две виртуальные машины не смогут разделять один порт.

hidden_4003
()
Ответ на: комментарий от hidden_4003

Немного не то.

Есть 2 сервера, не важно виртуальные или физические. Допустим 192.168.1.1 (vm1) и 192.168.1.2 (vm2). Внешний ip.
На каждой машине свой апач/iis/что-то ещё, но сайты разные.

То что вы написали там 1 сервер и разные сайты. А мне надо, чтобы были разные сайты и разные серверы, обслуживающие их.

Deleted
()
Ответ на: Немного не то. от Deleted

Только через установку прокси на хост машине, теоретически возможно сделать через iptables но сложность настройки + вероятно бОльшие (чем просто nginx) потребляемые ресурсы.

hidden_4003
()
Ответ на: комментарий от hidden_4003

А iptables не выручит?
Я это представляю так.
Пользователь набирает example1.com при получение такого запроса iptables на шлюзе перенаправляет запрос на 192.168.1.1 (vm1), если же example2.com, то отправляет запрос на 192.168.1.2 (vm2).

Deleted
()
Ответ на: комментарий от Deleted

Я не знаю есть ли модуль для iptables который умеет парсить http. Есть вроде по регулярным выражениям, но опять же в случае с https тут Вы пролетаете.

hidden_4003
()
Ответ на: комментарий от Deleted

смотря какие нагрузки. У меня на работе apache работает как прокси - не жалуемся. До этого стоял lighttpd - были проблемы с большими файлами на проксируемых хостах - он их сначала кэшировал у себя полностью в оперативке, а потом отдавал клиенту. Ну, то есть, представляешь как файл размером 500 мб забивает оперативку... А, и да, все модули типа cache и mem_cache естественно были отключены

Pinkbyte ★★★★★
()
Ответ на: комментарий от Deleted

Апач слишком прожорлив, nginx же изначально создавался как фронтенд-прокси.

hidden_4003
()

DNS развести религия не позволяет?
На худой конец на хостовой машине к примеру 1.1.1.1 в хостс пропиши
1.1.1.7 site.com
1.1.1.9 pron.com

Были ж люди как люди, и вдруг все стали удоры. (с)

anonymous
()
Ответ на: комментарий от Deleted

;3

Ровно так же. Ваще, чтоб из инета нормально попадать нужно на хосте поднимать полноценный DNS, в нём уже прописать хоть 2, хоть 100500 виртуалок, разницы нет, впрочем и хостс тоже сойдёт чтоб не замарачиваться.

anonymous
()

ставь nginx на хост-машину, и лепи в конфиг что-то вроде этого:

server {
    listen                  80;
    server_name             example1.com;
    server_name_in_redirect on;
    location / {
        proxy_pass          http://192.168.0.1:80; # ip виртуалки1
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server {
    listen                  80;
    server_name             example2.com;
    server_name_in_redirect on;
    location / {
        proxy_pass          http://192.168.0.2:80; # ip виртуалки2
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

cac2s
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.