我目前有以下网络设置:
Router/Firewall > IIS Web Server
当 HTTP 请求通过时,IIS 将查看主机头并决定返回哪个网站。
我现在的问题是,我想在 Web 服务器上设置虚拟机来托管基于 Linux 的 Web 服务器。我是否可以在路由器和主机虚拟机之间放置一个软件层,以分析 HTTP 请求并根据主机名将请求转发到另一个 IP 地址?最终设置应如下所示:
Router/Firewall > Host VM > Hostname Redirect Software > VM Web Server
软件层可以基于windows或者linux。
请您提供这些问题的具体答案。未回答的问题包括:购买新路由器、在 Windows 上运行 Apache、更改我的主机文件、购买更多公共 IP 地址。
谢谢
答案1
听起来你想设置一个反向代理在虚拟机上(或任何地方)。然后,您将所有域指向反向代理,然后反向代理将请求发送到最终目的地。我链接到 Apache 执行此操作的方式,但 nginx 作为反向代理也很流行。另一个选择是任何可以执行此操作的专用代理软件。
答案2
我的具体答案是设置一个 DNS 服务器,它将根据你输入的主机返回 A 记录,从而将你的连接指向正确的 Web 服务器 IP 地址
这一切都通过 DNS 的工作透明地处理
一个开源解决方案的示例是 Bind。您可以轻松创建一个虚拟机来为您的本地网络安装它,您的路由器甚至可能已经能够做到这一点,具体取决于它是什么。
你的服务器可能已经安装了 DNS 服务器,因此可能只需对其进行配置即可正常工作