我目前正在安装由虚拟化主机(Ubuntu上的kvm)和7个虚拟机组成的服务器,其中一些运行MySQL和LDAP,另一些运行不同的Web服务器和Web应用程序。 运行数据库的虚拟机只能由同一台物理服务器上的其他虚拟机查询。 networking服务器虚拟机将运行10-20个网站和webapps。 服务器将被放置在数据中心,直接连接到互联网。
我的想法是使用主机和虚拟机之间的NATnetworking(在内部形成一个局域网),并为HostOS分配公共IP地址。 HostOS将运行防火墙(使用iptables)并将networkingstream量分配给虚拟机。 虚拟机最初将完全从外部屏蔽掉,因此在这个scheme中不需要在任何一个虚拟机上都具有全function的防火墙。 另外,我只需要一个公共IP地址。 我必须支付额外的IP地址,我不能超过5。
我想我可以在HostOS上使用反向代理,根据请求的主机名在VM之间分配stream量。
我的问题是双重的:
我正在使用Proxmox的这种架构。 因为我没有足够数量的虚拟机的公共IP,桥接networking不是一个选项。 我使用nginx作为代理虚拟机,可以直接在主机上configuration它,但是使用虚拟机也不是一个坏主意(尽量保持主机configuration的简单性)。
使用桥接networking的唯一方法是为每个应连接到互联网的虚拟机设置一个IP。 因为这意味着你必须自己保护每个虚拟机,所以在你的主机系统上只使用一个防火墙可能不太方便。 也有很好的教程,如果你使用libvirt( https://jamielinux.com/docs/libvirt-networking-handbook/nat-based-network.html )。 根据我的经验(用nginx),这个解决scheme没有显着的放缓。 我认为HAproxy可能会更快。