У меня есть один общедоступный 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 предотвратит застревание этого в бесконечном цикле.
Это решение, кажется, работает в моей голове и на бумаге, но я не смогу настроить это какое-то время.
Кто-нибудь может увидеть причину, по которой это не сработает?
Спасибо.