我有一个关于iptable预发布的问题。 我不熟悉networking/路由/ iptables,所以我希望这不是一个愚蠢的问题。 所以我要求你的理解和放纵。
我所做的是:我使用LXC来分隔容器中的应用程序。 为了访问一个容器中的服务(也许是apache2),我必须这样做prerouting:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20080 -j DNAT --to <container-ip>:80
到目前为止,这样做很好,工作应该如此。
假设主机系统也运行一个apache2(端口80)。 它有1个网卡和2个DNS名称分配: DNS1 (HostRecord)和DNS2 (别名DNS1 )我想要做的是不要使用dport,但通过使用DNS名称,以便:
http://DNS1:80 #ends up at the host apache2 http://DNS2:80 #ends up at lxc-container's apache2 (at the the same host)
是否有可能,如果是的话,如何configurationiptables?
TCP / IP数据包路由到IP地址和networking端口,而不是主机名。
因此,iptables的packetfilter工作在IP地址,networking端口和协议,而不是DNS /主机名。
您的select是:
例如:
NameVirtualHost *:80 <VirtualHost *:80> # The DNS1 site is hosted locally ServerName DNS1 DocumentRoot /var/www./... </VirtualHost> <VirtualHost *:80> ServerName DNS2 # Forward all requests to container: Proxypass / http://<container-ip> ProxypassReverse / http://<container-ip> </VirtualHost>