我认为这里有一些概念 - 首先,你通常只能在每个IP地址的端口上有一个应用程序。还有一些软件可以处理传递给其他服务器的东西。
所以让我们从头开始吧
最简单的是你的地形看起来像这样
Internet+-----------> consumer router +----------> Host+--------------> VM
您需要一个可路由的IP地址(而不是NAT)用于您的Internet连接,通常您可以在路由器上进行检查。将ipv4 A记录指向此处。
关于如何设置主机和VM,您有两种选择 - NAT(这意味着您需要将端口从主机转发到VM)或“桥接”,其中VM充当单独的物理机。我更喜欢桥接。
如果您为虚拟机进行NAT,则需要前进两次 - 从路由器到主机,从主机到虚拟机。
如果您希望将其作为桥接网络,则只需将要使用的端口转发到VM。
通常,Web服务器使用端口80,但有时该端口会被阻止。
现在2个Web服务器变得复杂。拥有两个分离的Web服务器的最佳方式(也许唯一的方法)就是拥有一个 第三 服务器,作为代理运行
nginx是这个的流行选项 - 这个服务器故障问题 涵盖了这个过程 ,但基本上你的第三个服务器坐在那里根据域名将流量传递到正确的服务器。这使用虚拟主机,而ngnix作为反向代理非常有效地工作。
您还可以设置两个具有不同根目录的虚拟主机(以及一个Web服务器)。您不一定必须共享数据库(可以在他们自己的VM上)。这将是明智的方式。