Iis 在负载平衡器后面运行Orchard CMS站点

Iis 在负载平衡器后面运行Orchard CMS站点,iis,orchardcms,web-farm,nlb,Iis,Orchardcms,Web Farm,Nlb,我需要在一个web服务器场上的站点中,在负载平衡器后面部署一个orchard应用程序。这似乎是一个相当常见的场景,但我似乎找不到任何关于如何在WindowsAzure之外实现这一点的指导 Orchard文档描述了如何在Windows Azure上部署多个实例。它指出了三个必须解决的问题,但解决方案都是针对Azure的 存储在文件系统上的媒体文件。App_数据文件夹中还存储了一些文件,例如搜索索引。这不也是个问题吗?解决这个问题的最佳方法是什么?通过文件共享运行站点?使用Windows DFS复

我需要在一个web服务器场上的站点中,在负载平衡器后面部署一个orchard应用程序。这似乎是一个相当常见的场景,但我似乎找不到任何关于如何在WindowsAzure之外实现这一点的指导

Orchard文档描述了如何在Windows Azure上部署多个实例。它指出了三个必须解决的问题,但解决方案都是针对Azure的

  • 存储在文件系统上的媒体文件。App_数据文件夹中还存储了一些文件,例如搜索索引。这不也是个问题吗?解决这个问题的最佳方法是什么?通过文件共享运行站点?使用Windows DFS复制更改?我不想使用文件共享
  • 输出和数据库缓存使用本地内存进行存储,再加上仅在本地服务器上触发缓存失效的信号。分布式事件模块解决了这个问题吗?或者是果园。Redis的特色
  • 会话状态存储在本地内存中。我想我可以在负载平衡器上启用粘性会话,或者只使用SQL Server作为会话状态
  • 我发现了一篇旧帖子(,回到Orchard 1.1),建议在web.config中设置机器键

    我怀疑我会遇到预热模块的问题?我运行了Orchard.TaskLease模块,这似乎意味着在多台服务器上运行的任务存在问题,而它们应该只在一台服务器上运行


    是否有人在负载平衡的非Azure环境中成功部署了Orchard?您建议使用什么模块和特殊配置来实现这一点?

    困难在于这个问题没有唯一的答案。这取决于托管环境的很多方面。有很多模块可能有用,也可能没用。拥有同步的机器密钥是最基本的要求,但通过混合使用复制(从共享运行很少是一个好主意),以及使用专门的模块和技术(如Redis),可以做更多的事情。会话很少被使用,但是设置会话亲缘关系是另一个需要考虑的问题,在这种情况下(TempData就是这样一种情况)。