Назад | Перейти на главную страницу

Перенаправлять разные имена хостов на разные внутренние IP-адреса через NAT-маршрутизатор

У меня есть один общедоступный IP-адрес, один маршрутизатор и несколько серверов за маршрутизатором.

Я хотел бы перенаправить разные домены (все с использованием HTTP) через маршрутизатор на разные серверы.

Например:

example1.com      =>  192.168.0.110
example2.com      =>  192.168.0.120
foo.example2.com  =>  192.168.0.130
bar.example2.com  =>  192.168.0.140

Я понимаю, что это можно сделать с помощью перенаправления портов, но мне нужны все хосты, работающие на порту 80.

Я нашел некоторую информацию о IP Masquerading, но мне было трудно понять, и я не уверен, что это то, что мне нужно.

Другое решение, которое я нашел, - направить весь трафик на обратный прокси-сервер, который пересылает запросы на соответствующий сервер. А как насчет iptables?

Я использую маршрутизатор Billion 7404 VNPX. Есть ли в этом маршрутизаторе функция, позволяющая добиться этого?

Это мои единственные варианты? Я что-то полностью упустил? Один рекомендуется по сравнению с другими?

Я искал, но не думаю, что набираю правильные ключевые слова.

Лучшим решением будет использование обратного прокси-сервера HTTP. Для этого можно использовать:

Мы используем apache с mod_proxy, но я думаю пойти с фунтом.

В качестве аппаратного устройства можно использовать Cisco Content Service Switch. Видеть: http://www.cisco.com/en/US/products/hw/contnetw/ps792/index.html

У меня была идея, и я хотел бы знать, есть ли у кого-нибудь отзывы по ней.

Если я использую идею обратного прокси, я думаю, что смогу решить проблему довольно просто. Я уже использую Nginx на других серверах, поэтому это мой сервер для обратного прокси.

На маршрутизаторе я перенаправляю все входящие соединения на порт 80 на мой обратный прокси-сервер. На этом сервере у меня будет запущен Nginx со следующим файлом конфигурации:

server {
    listen *:80;
    location / {
        proxy_pass    http://$host;
    }
}

Это похоже на прокси-запрос на тот же хост. Но вот трюк: в моем файле / etc / hosts я сопоставлю все домены с их внутренними IP-адресами.

182.168.0.110 example1.com
182.168.0.120 example2.com
182.168.0.130 foo.example2.com
182.168.0.140 bar.example2.com

Таким образом, обратный прокси-сервер будет направлять запрошенный хост на тот же хост, но на этом этапе он должен найдите файл локальных хостов и сопоставьте его с внутренним IP-адресом. Это также означает, что я могу «установить и забыть» файл конфигурации Nginx.

Потенциальная проблема заключается в том, что если локальное имя хоста не было настроено, обратный прокси-сервер отправит запрос обратно в Интернет. Однако я думаю, что NAT предотвратит застревание этого в бесконечном цикле.

Это решение, кажется, работает в моей голове и на бумаге, но я не смогу настроить это какое-то время.

Кто-нибудь может увидеть причину, по которой это не сработает?

Спасибо.