确定VM环境中的哪个服务器将请求转发到基于一个networking适配器上的主机标头(closures)

正如问题标题所述:我试图弄清楚如何根据所述请求的主机头来辨别哪个Web服务器将networking通信传递到networking。 我正在与主机服务器上的一个networking适配器,我的所有客户操作系统的共享。 这种设置是不必要的(我可以使用有限的硬件),也希望学习这种技术,以便尽可能地利用我的组件。

有人知道我将如何在相同的ESXi环境中完成此任务吗?

在运行nginx的ESXi环境中创build一个新虚拟机,并使用代理模块来引导您的stream量:

server { listen 80; server_name hostname1 hostname2 hostname3 ... hostnameN; if ($http_host = hostname1) { proxy_pass http://192.168.0.1; } if ($http_host = hostname2) { proxy_pass http://192.168.0.2; } if ($http_host = hostname3) { proxy_pass http://192.168.0.3; } #... if ($http_host = hostnameN) { proxy_pass http://192.168.0.N; } } 

调料: http : //nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

对网站的请求被parsing为一个IP地址。

stream量然后路由到您的networking。

您的防火墙/路由器将公共IP地址转换为私有IP地址(根据您的IP地址转换configuration)。

您的防火墙/路由器然后为有问题的IP地址的MAC地址执行ARP。

相关的虚拟机应答ARP请求。

您的防火墙/路由器将stream量发送到MAC地址。

您的交换机将stream量转发到适当的交换机端口(基于它的MAC地址表)。

stream量通过ESXi主机pNIC(纯粹)。

相关的虚拟机将消耗stream量并将其引导至相应的网站(如果您在使用主机头文件或与Linux等效的单个networking服务器上托pipe多个网站)或相应的networking服务器(如果您使用代理服务器和多个Web服务器)。