我在服务器上运行Debian 7.0,OpenVZ有一些容器。
我想根据对服务器的请求,将此请求发送到特定容器。 例如:
domain.com:500 -> Container1 will handle it
domain.com:501 -> Container2 will handle it
我想,如果可能的话,避免使用IPTables,因为我只是遇到麻烦而且从来没有真正理解它的规则(我也希望避免使用HAProxy)。我使用UFW没问题。
我正在寻找一个非常简单的解决方案。
答案 0 :(得分:0)
如果您使用ufw,请转到/ etc / ufw /并编辑before.rules文件。该文件以:
开头# NAT table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-F
之后请添加(这只是一个例子):
# container 1 rules
-A PREROUTING -i eth0 -p tcp --dport 500 -j DNAT --to-destination container1-ip-address:port
# container 2 rules
-A PREROUTING -i eth0 -p tcp --dport 501 -j DNAT --to-destination container2-ip-address:port
您应该将eth0替换为服务器的界面(我假设您正在使用桥接)。
保存文件。重启ufw防火墙:
ufw disable
ufw enable
我认为你的容器已经具有互联网访问权限,所以我假设你已经在你的内核中启用了端口转发支持(你应该在 /etc/sysctl.conf 中有这一行):
net.ipv4.conf.all.forwarding = 1
net.ipv4.ip_forward = 1