1个IP但多个Web服务器的子域

时间:2014-01-25 10:53:33

标签: routing webserver subdomain ipv4

在单个IP上托管多个网站的传统方法是使用共享主机并为每个站点使用Apache虚拟主机配置。因此,基于虚拟主机查找将不同的域名映射到不同的站点,但它们都转到了相同的IP。不过我想知道:

私有LAN上可以有多个Web服务器,可以通过单个面向公众的路由器/ dns /任何使用单个公共IP的端口80在端口80上访问。

理想情况下,子域可以访问不同的服务器,例如server1.my-site.com和server2.my-site.com。如果允许您的Web服务器通过端口转发为不同端口上的网站提供服务,这是相当容易的,但我需要外部世界不必知道要连接的端口并且只能输入server1.my-domain。 com进入他们的浏览器而不是server1.my-domain.com:1234

这只是一个问题,因为IPv4地址越来越稀缺,IPv6还没有“准备就绪”。

2 个答案:

答案 0 :(得分:3)

是的。您必须将路由器设置为反向代理,并根据Host标头或请求URL将HTTP请求转发到专用网络中的一个主机。在反向代理方面,Nginx是一种流行的选择。

如果要代理HTTP,SMTP或IMAP服务器以外的服务,则需要使用iptables,例如

iptables -t nat -A PREROUTING -d $DOMAIN_NAME -j DNAT --to-destination $SERVER2_IP
iptables -t nat -A POSTROUTING -j MASQUERADE

答案 1 :(得分:0)

Stefano的解决方案只有在可以在路由器上安装Nginx时才有效。如果不可能在路由器后面的服务器上设置反向代理(Nginx / Squid / Apache等)。端口将流量从路由器转发到反向代理服务器。设置反向代理以将流量转发到网络中的不同服务器。