2014-09-22 37 views
3

在WebsiteAzure中,我们有一个分段功能。因此,我们可以部署到一个临时站点,进行测试,填充所有缓存,然后切换生产阶段。在自定义服务器上模拟Azure分段

现在我怎么能做到这一点与IIS正常的WindowsServer?

可能的解决方案 一个stragey我在想是有一个脚本副本内容从一个文件夹到另一个。 但是可以有文件锁定。此外,由于这不是事务性的,所以在网站中有一段时间是无效的状态。

第一个问题: 我有一个外部负载均衡器,但它是外部托管的,不幸的是目前无法处理这种情况。

第二个问题正如我希望我的脚本始终部署到分段我想在IIS中为我在buildserver脚本中使用的分段站点有一个修复名称。所以我也必须重新命名这些网站。

第三个问题站点在多个服务器之间同步以实现负载平衡。现在,当我重建站点上的绑定(以使其具有一致的登台服务器)时,我可能会遇到一些计时问题,因为并非所有服务器都设置为同一文件夹。

有没有对如何做到这一点的任何扩展/最佳做法?

回答

1

您有多个服务器,所以你运行的是分布式系统。原则上不可能有最新版本的原子版本。即使您使负载平衡器原子性地将流量导向新网站,某些旧请求仍在运行。您需要能够在少量时间内同时运行两种代码版本。此功能是您的应用程序的一项要求。能够回滚不好的版本也很方便。

鉴于需求可以实现这样的:

  1. 在IIS中创建一个临时站点。
  2. 热身。
  3. 交换所有服务器上的绑定和站点名称。这并不需要是原子的,因为正如我所解释的,它是不可能的使它成为原子。
+0

你能否解释一下更详细的如何“交换”绑定?我唯一知道的就是一个接一个地删除一个,然后在用户使用该站点时设置另一个可能在无效绑定中结束的另一个。另外添加和删除绑定可能触发appool回收不是吗? – 2014-09-22 18:51:05

1

如通过Skype解释的,你可能想看看“反向代理的iis”。下面这篇文章实际上看起来非常有前途

http://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis

这种方式,你可能会建立一个面向公众的“前端”的网站,可以在两个(或更多)私有/保护的网站之间轻松切换 - 即使他们可能会驻留在同一台机器。此外,这也可以让你实际拥有两个公开的URL,根据你的需求和部署,这些URL是简单的交换。

只是一个想法......我还没有在这种情况下测试,但我公开运行在Apache反向代理,并通过VPN服务的私人IIS网站的内容。

相关问题