![在同一台机器上模拟不同的域](https://linux22.com/image/795592/%E5%9C%A8%E5%90%8C%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8%E4%B8%8A%E6%A8%A1%E6%8B%9F%E4%B8%8D%E5%90%8C%E7%9A%84%E5%9F%9F.png)
我将在同一台机器上运行 2 个服务器(SSO 和应用程序服务器),但监听不同的端口。是否可以为它们分配以下地址:示例.com和app.example.com那么第二个域名是第一个域名的子域名吗?
我该如何实现这个目标?我应该使用hosts
文件还是Active Directory
?
编辑:
我不打算使用 IIS。我想测试开放增强现实产品将部署为雄猫应用程序(最有可能监听 8080 端口),并且我想在玻璃鱼应用服务器将托管一些可能在 9090 端口上监听的 Web 应用程序。
现在我想要实现的是重定向所有示例.com请求到 10.11.11.22:8080 和app.example.com至 10.11.11.22:9090。
答案1
你可以使用主机头在同一个 Web 服务器上运行多个网站 /虚拟主机这是一种机制,其中 Web 服务器查看浏览器提供的主机名(用于访问 Web 服务器)并从适当的网站提供内容。
如果您使用唯一的主机标头定义每个 http 网站,您甚至不需要为它们定义不同的端口。如果您希望使用不同的端口,那么在大多数 Web 服务器中这也相当容易(您不必说明您正在使用哪个 Web 服务器)。
至于如何设置站点的名称,这也相当容易,尽管它实际上与活动目录没有任何关系,而且我不会亲自除了在本地 Web 服务器上进行开发测试外,请使用 hosts 文件进行其他操作。您只需在 DNS 中为这两个网站地址创建条目,指向 Web 服务器即可。
因此,您需要为 Web 服务器本身的主机名和 IP 地址创建一个“A”记录(例如mywebserver.example.com),然后使用两个“CNAME”记录(别名)指向示例.com和app.example.com在该 A 记录中。这会告诉任何在 DNS 中查找这两个网站地址的客户端使用为 Web 服务器本身定义的 IP 地址。
更新地址编辑
无法将端口号包含在主机名或 IP 地址中。您的用户必须输入 example.com:8080 和 app.example.com:9090。您要求的内容超出了 DNS 或 hosts 文件中可以执行的操作范围,因为它与姓名解决。
我能想到的解决这个问题的两种方法是
创建两个独立的虚拟服务器,每个虚拟服务器都在监听端口 80 的 Web 服务器上安装应用程序。
在端口 80 上安装 IIS(或其他程序),并为每个主机标头创建一个站点,如上文所述。然后使用重定向将每个站点重定向到监听任意端口的“正确”站点。
答案2
您可以使用您的hosts
文件或您的 DNS 服务器,以最方便的方式选择,通常hosts
除非您需要从您的机器外部使用该服务器。
正如您提到的 Active Directory,我假设您正在使用 Window/IIS,在这种情况下您需要采取的操作是:
- 使用 example.com 和 app.example.com 填充您的主机文件/DNS服务器,指向适当的IP地址(注意:您可以为每个域名分配不同的 IP 地址,并让您的机器拥有多个 IP 地址(如果您愿意的话)。)
- 在 IIS 管理器中配置多个网站并对每个网站应用主机头绑定。
如果您确实在 IIS 中托管这些,您可以让它们都监听端口 80,您可以选择 IIS 根据主机头 iot 进入的位置将流量引导到适当的站点,即 example.com 或 app.example.com