多个 Web 服务均通过 IPTABLES 在 80 端口上运行

多个 Web 服务均通过 IPTABLES 在 80 端口上运行

我基本上想知道在不使用 nginx 之类的代理的情况下运行多个 web 服务时,最佳做法是什么,这些服务都需要在端口 80 上。以下解决方案实际上有效,但我想知道我是否真的做得正确。

目前我在我的 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

我会将 foo.com 的 DNS 指向 1.1.1.1,而 bar.com 将解析为 1.1.1.2,但两者在外部均在 80 上运行。

我非常感谢任何意见/建议,我目前正在运行 CentOS 5.5。

答案1

为什么不让两个 Web 服务器(或任何服务器)绑定到不同 IP 地址的 80 端口?以这种方式(滥用)使用 iptables 只会让人感到困惑(我知道,我曾在这样的环境中工作过;这很痛苦、烦人、没有效率,而且没有必要)。

相关内容