![如何在一台 IIS6 服务器上托管多个域/网站](https://linux22.com/image/489384/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%80%E5%8F%B0%20IIS6%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%89%98%E7%AE%A1%E5%A4%9A%E4%B8%AA%E5%9F%9F%2F%E7%BD%91%E7%AB%99.png)
我目前有一台 IIS6 服务器,用于托管一个网站/域名。我正在开发另一个网站(完全独立),希望将其托管在同一台服务器上。两个域名都是从 GoDaddy 购买的。
我认为我需要一个服务器端 ISAPI 重写过滤器,以便根据域名内部路由传入的请求。我计划使用Ionic 的 ISAPI 重写过滤器这样做是因为它是免费的。我知道如何安装 ISAPI 筛选器并将其应用于 IIS 中的网站,但我不知道如何正确路由传入的请求(基于域)。
另外,我不知道设置多个“网站”或“虚拟目录”是否明智。我认为这取决于如何配置。
我该如何完成这个任务?
答案1
您根本不需要重写规则,您确实需要设置新的网站配置。 IIS 6 可以通过使用新 IP 地址(因此服务器有多个 IP 地址)或使用主机标头将域链接到网站配置来区分网站。
答案2
我认为这里没有问题。 IIS 6 可以托管数百个网站 - 即使在同一个 IP 地址上(除了 https,您需要一个专用的 IP 地址) - 通过主机头(域名)区分它们。
阅读此 Microsoft 支持文章:如何使用主机头名称在 Internet Information Services 6.0 中配置多个网站:
Microsoft Internet 信息服务 (IIS) 允许您使用名为“主机标头名称”的功能将多个具有相同端口号的网站映射到一个 IP 地址。通过为每个网站分配唯一的主机标头名称,此功能允许您将多个网站映射到一个 IP 地址。
我认为 Ionic 的 ISAPIRewrite 过滤器适用于网站,每个网站都有自己的定义文件。我在我的 IIS 服务器上使用类似的过滤器 (ISAPI Rewrite),服务器上有许多网站,没有任何问题。
答案3
您只需要查找主机标头。只要主机标头不同,多个站点就可以共享同一端口。转到站点的属性,在 IP 地址绑定下拉菜单旁边的“高级”按钮下,您可以编辑站点的端口和主机标头。
没有比这更戏剧性的了。;)
答案4
除了大家的回答之外,我在配置 IIS 以用于简单的本地测试环境时遇到了一些问题。问题是:它不能像我们希望的那样自行完成。
所以收集其他人在这里说的话,我认为最好的方法是多个 IIS 站点正在使用主机头名称那就是很容易设置(感谢 Moo 提供的链接)。在 IIS 6 上,如果您已经创建了网站,则只需转到“绑定”。易于在谷歌上查找参考资料为了那个原因。
较旧的 IIS
微软 IIS 6 新功能
然后我需要设置 hosts 文件。对于 1 个站点来说,这很简单,但对于多个站点来说,这有点困难,这就是为什么我们希望能够在 IIS 上做到这一点。没有这样的运气。自己动手。
主办方
当然,这就是大家已经说过的了,只是在 DNS 上执行这些操作肯定更好……但这对于本地测试来说已经足够了,我认为应该在 IIS 中内置一个选项来执行此操作。