Web服务子域托管与虚拟目录

时间:2018-07-24 18:45:47

标签: web-services iis virtual-directory

我搜索了几个小时,无法找到以下问题的确切答案。

在子域上托管Web服务相对于使虚拟目录指向Web服务本身具有优势。

例如: webserivces.domain.com/login domain.com/webservices/login

IIS依赖于应用程序池,并且假设Web服务与单个应用程序池相关联,那么托管分离的网站(例如,子域)与将虚拟目录应用于使用这些目录的每个网站之间有什么区别?相同的Web服务。

domain.com/
-- WebServices/ <- Where the web services actually reside
---- login
-- WebSite1/
---- Login.aspx
-- WebSite2/    
---- Login.aspx
WebSuite.domain.com
-- WebServices/ <- VIRTUAL DIRECTORY
-- WebSite3/
---- Login.aspx <- Calls "login" web service through virtual directory

1 个答案:

答案 0 :(得分:1)

我个人总是选择子域,因为它比使用vdirs更加灵活/可扩展,但是无论哪种方式都可以正常工作(特别是在小规模情况下)。我对子域的推理是:

  1. 在最初推出2个dns名称时,您可以将它们免费指向同一台服务器(如果按主机名的浏览器限制请求可以提高吞吐量)。

  2. 将来,您可能需要将前端和后端分成2个服务器。使用子域,这很简单,启动新服务器,然后进行一次DNS更改。可以使用允许多个Web / API服务器等的负载平衡器进一步升级这两个域,所有这些都可以无缝地进行。使用vdir进行的升级比较棘手,需要更多工作(但仍然完全可行)。

  3. 应用程序池强制执行流程隔离-因此(理论上)应用程序池不应对彼此产生不利影响(性能/安全性)。

  4. 前端和后端具有非常不同的工作负载和最佳配置,并且如果它们在同一应用程序池中没有特殊要求,则最好的做法是保持独立。

  5. (主观),在网站级别进行操作更易于脚本编写/自动化/部署。

因此,基本上,如果您谈论的是流量有限,增长潜力有限的网站,那真的没关系。如果有可能,您将需要扩大规模,减轻自己的痛苦,并从头开始使用子域路由。