2

在当前正在开发的 web 应用程序的即将发布的版本中,我需要从一个站点为多个域提供服务。网站上的代码将识别各个域并相应地改变内容。我不知道我们将服务的所有域,因为客户可以将新域添加到他们的站点。编码部分,我知道怎么做——当客户添加一个域时,我们的数据库中会有一个相应的条目,这将作为控制显示哪组内容的关键。

问题是,我不擅长系统管理。服务器已经托管了十几个与此 webapp 无关的不同站点,因此并不是每个访问我们服务器 IP 的域都可以通过我上面描述的代码。如果我提前知道这些域,我可以简单地将它们指向我们服务器的 IP,然后在 IIS 中创建绑定来处理每个域。但是由于我不提前知道这些领域,所以我很茫然。我该怎么做才能使我的 IIS7 服务器支持这种情况?

4

2 回答 2

3

环顾四周后,我找到了一些选择。

1) 将其构建到代码
中 最好的选择可能是以 编程方式在 IIS6IIS7中创建绑定。通过这种方式,所有内容都集成到了 webapp 中,这意味着在应用程序之外没有任何麻烦或大惊小怪。它需要在应用程序本身中做更多的工作,但是保持事物整洁并将围绕此操作的所有功能保留在单个代码库中的好处几乎绝对值得。

2) PowerShell
另一种选择是为 powershell 设置一个脚本,让它根据检测到数据库更改的脚本来处理这些东西。这也可以很好地工作,但缺点是要创建两个代码库来维护。

3)删除域绑定
这个答案引导我尝试从 IIS 中的 webapp 绑定中删除现有域。进行此更改后,只需访问 IP 地址即可访问我的 webapp(因此绑定不再是问题)。到目前为止,我们为此 web 应用程序设置的一个域仍然可以到达所需的站点。因此,该解决方案似乎可以简单到在 IIS 的绑定中没有列出主机/域。只要只有一个站点执行此操作,所有与另一个绑定不匹配的流量都会加载该站点。这里的一个很大的好处是它比上面提到的任何编码解决方案都花费更少的时间/精力。缺点是您只能让服务器上的一个站点以这种方式执行,并且您不能再将服务器锁定为仅提供具有可识别域的内容。

于 2012-05-18T14:33:43.133 回答
0

是否可以向服务器添加额外的 IP 地址?

这样,您可以让 IIS 处理此 IP 地址上的所有请求,并仅为这些请求运行您的逻辑。保持现有网站不变。

于 2012-05-18T14:05:14.647 回答