Мне в основном интересно, что лучше всего использовать при запуске нескольких веб-сервисов, которые все должны быть на порту 80, без использования чего-то вроде nginx в качестве прокси. Следующее решение действительно работает, но мне интересно, правильно ли я это делаю.
В настоящее время я делаю что-то вроде этого в своих iptables:
*filter
-A RH-Firewall-1-INPUT -m state --state NEW -d 1.1.1.1 -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -d 1.1.1.1 -m tcp -p tcp --dport 8081 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -d 1.1.1.2 -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -d 1.1.1.2 -m tcp -p tcp --dport 8082 -j ACCEPT
*nat
-A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to 1.1.1.1:8081
-A PREROUTING -d 1.1.1.2 -p tcp --dport 80 -j DNAT --to 1.1.1.2:8082
Я бы указал свой DNS на 1.1.1.1 для foo.com, а bar.com разрешился бы на 1.1.1.2, но оба работают на 80 внешне.
Я очень ценю любой ввод / предложения, в настоящее время я использую CentOS 5.5.
Почему бы вам просто не привязать оба веб-сервера (или что-то еще) к порту 80 на разных IP-адресах? (Ab) использование iptables таким образом просто сбивает людей с толку (я знаю, я работал в среде, которая делала это; это было болезненно, раздражающе, непродуктивно и ненужно).