转发外部请求到虚拟机

我有一个运行Apache的Ubuntu服务器虚拟机安装在Fedora上。 如何将外部Web请求转发到我的虚拟服务器?

所以我有我的主机(Fedora)上运行142.204.142.182我有我的虚拟机(Ubuntu的)运行在192.168.100.136

我怎么能这样做,当有人请求142.204.142.182在一台单独的计算机上(从他们的Web浏览器),我的主机转发请求到虚拟机,因此页面从VM提供。

如果Ubuntu VM是局域网上唯一公开可用的networking服务器,则可以将防火墙/路由器上所有传入的TCP / 80请求转发到192.168.100.136。

当您需要更多内部主机作为公共可用的Web服务器时,您遇到问题。 您需要获取更多的公共IP地址,或者设置192.168.100.136networking服务器将所有请求代理到不同的Web服务器,具体取决于传入请求的主机头。

这被称为反向代理,并且使用Apache很容易设置。 缺点是136networking服务器的负载会增加,因为它代理所有的stream量。 好处是,它可以作为caching,减less其他networking服务器的负载。 说起来…

另一种select,类似于Apache的反向代理,是安装一个负载平衡器,比如Varnish ,并且将你的TCP / 80stream量input到负载均衡器。 在负载平衡器中,您可以定义规则来定义哪些请求由哪些内部服务器处理。 实际上,这也是一个反向代理,但是像Varnish这样的负载均衡器在caching方法和configuration方面更为先进。

除非我完全误解了你的问题,否则只要确保托pipe站点的DNS指向虚拟机的IP地址,确保没有防火墙阻止正确路由。

如果这不能回答你的问题,那么请详细说明。

虚拟机的网卡是否设置为NAT? 如果是这样,是否有一个“硬”的要求,它是NAT的? 如果没有,为什么不把虚拟机的网卡设置为“网桥”模式,并为其分配一个工作(为您的networking)142.204.xx地址?