将网站从专用服务器移动到云服务器

问题描述:

我们在专用服务器上托管的网站很少,如果我们决定将网站从专用服务器移动到云服务器,那么从编程角度我们应该考虑什么。我们所有的网站都是基于Asp.Net的&使用不同的会话变量并依靠MS SQL Server标准2012数据库。将网站从专用服务器移动到云服务器

在互联网上有很多信息可用,其中一些令人困惑,甚至混淆是云环境类型。服务提供的销售团队总是推动移动云但是当我们问这些问题时,没有明确的答案。

几年前我遇到了一个这样的共享主机问题,当一个网站在调查后发现同一用户的相同请求失去会话变量后,我发现共享主机是基于农场的共享主机,因此同一用户会话由服务器场中的不同服务器导致会话变量丢失,以防第一次请求发送到服务器1 &第二次请求发送到服务器2.此问题已通过在web.config中添加机器密钥解决。

我真的不知道云服务器是如何工作的。我担心会话变量丢失,我可以通过使用基于SQL的会话状态来解决。

从配置或编程角度来看,在注册基于云的Web服务器之前应该采取的其他精度是什么。

无论何时迁移到基于云的解决方案,要记住的一个重要因素是“状态管理”。在云中,当您考虑扩展多个实例时,因此在进程状态管理中排除负载平衡器将请求分发给不同实例,而存储在一个实例中的会话变量将不会被另一实例使用。所以没有像基于SQL数据库的proc选项是选项。我一直在广泛使用Microsoft Azure云。而选择设立了PROC会话状态的蔚蓝是

  1. SQL Azure数据库基于会话状态provider

  2. Redis的缓存基于会话状态(Redis的缓存提供作为托管服务)link

  3. 蔚蓝表存储基于会话状态provider

    一般出PROC的是路要走,您可以决定基于您选择的技术和云栈的实施。

我最近做了同样的研究。我同意@Aravind认为外部存储库是最安全/最好的方式;但是,Azure使用的负载均衡器(ARR)默认启用了持久性。检查你的cookies,你会看到一个ARRAffinity cookie。这意味着客户端总是会尽可能地进入同一个实例,从而允许InProc会话在某种程度上被使用。

再一次,外部回购是最好的,但如果你需要快速起床,或者没有太多努力,这是可能的。

更新:你现在可以在一个Web应用程序 enter image description here

有你需要的云服务器上工作时,了解几个点的设置中打开ARR亲和力和关闭。

  1. 如果我们通过阿里云或任何其他云提供商使用单服务器(如ECS),则设置将与我们在物理服务器上的设置相同。
  2. 如果我们使用阿里云的RDS等托管服务,那么网络字符串(db url)需要照顾。
  3. 如果我们在云上使用负载均衡器后面的多个服务器(例如Alicloud云上的SLB),则必须小心维护会话。建议使用集中式会话管理器,如Memcache。否则,我们需要调整负载均衡器配置。

我的大多数参考文献都来自Alicloud,因为我已经在这方面进行过工作,所以请耐心等待。你也可以检查他们的网络托管软件包