【问题标题】:How should a NAS based Load Balanced Environment be configured in Umbraco?在 Umbraco 中应该如何配置基于 NAS 的负载平衡环境?
【发布时间】:2013-09-12 14:26:56
【问题描述】:

我目前正在运行 Umbraco 4.7.1.1。我正在设置基于 NAS 的负载平衡环境,我想知道是否需要设置“TEMP”虚拟目录,请参阅 *Reference,以处理 ClientDependency 和 ExamineIndexes 文件设置<add key="umbracoContentXMLUseLocalTemp" value="true" />

我了解umbracoContentXMLUseLocalTemp = true 告诉逻辑在单个服务器本地的 ASP.Net 临时文件夹中放置/使用 umbraco.config 文件。如果我只有umbracoContentXMLUseLocalTemp = true,我就会遇到性能问题。当我有虚拟目录(页面加载速度是原来的两倍)时,这些问题似乎就消失了。我开始倾向于不使用umbracoContentXMLUseLocalTemp = true 并使用<add key="umbracoContentXML" value="~/App_Data/TEMP/umbraco.config" /> 将所有内容存储在虚拟目录中。我宁愿不必使用虚拟目录。

我开始使用:http://our.umbraco.org/wiki/install-and-setup/installing-umbraco-for-load-balanced-environments 设置我的负载平衡环境,它现在包含一个将您重定向到http://our.umbraco.org/documentation/Installation/load-balancing 的链接。该文档似乎表明,如果我将文件存储与文件复制一起使用,我可以选择使用虚拟目录。这似乎表明 umbracoContentXMLUseLocalTemp = true 是您需要使用 NAS 进行文件存储的全部内容。

我相信http://our.umbraco.org/wiki/install-and-setup/installing-umbraco-for-load-balanced-environments 曾经包含与此相同的内容:http://our.sandbox.umbraco.org/wiki/install-and-setup/installing-umbraco-for-load-balanced-environments。该文档似乎表明您需要有一个虚拟目录,但它甚至没有引用umbracoContentXMLUseLocalTemp

------------------

*参考

除了启用上面的分布式调用之外,还有一些额外的项目需要修改。每个服务器都需要 /App_Data/TEMP 目录的唯一副本,以使检查和客户端依赖项缓存正常工作。此外,umbraco.config xml 缓存文件也应该是唯一的,以限制文件锁定的任何问题。

使用虚拟目录配置临时文件

  1. 编辑 /web.config 并将 umbracoContentXML 更改为使用 ~/App_Data/TEMP/umbraco.config
  2. /App_Data/TEMP 目录复制到每台服务器、任何复制区域之外或每台服务器的唯一文件夹。
  3. /App_Data 文件夹中创建一个虚拟目录(不是虚拟应用程序),并将其命名为 TEMP。将虚拟目录指向您在第 2 步中创建的文件夹。
  4. 如果您愿意,可以从文件系统中删除 /App_Data/TEMP 文件夹(不是 IIS,因为这可能会删除虚拟目录)。

【问题讨论】:

  • 你得到什么样的性能差异?当使用umbracoContentXMLUseLocalTemp = true 时,它们的页面是不是每次都是第一次启动?还是他们只是反应迟缓,使用虚拟目录更快?
  • 另外,您是在负载平衡域上运行测试,还是在单个服务器的单个非负载平衡子域上运行测试?
  • 我正在单独调用每个服务器。我加载了同一个页面 10 次,然后我记录了接下来的 5 个页面加载。服务器 1(虚拟目录到位)0.33、0.35、0.36、0.35、0.36 服务器 2(无虚拟目录)2.04、2.10、1.08、2.06、2.14 服务器相同,但为了安全起见,我会尝试放置虚拟目录在另一台服务器上,我会回复我的发现。
  • 我将虚拟目录放在服务器 2 上,然后将其从服务器 1 中删除。结果是我期望看到的。服务器 2 现在很快,服务器 1 现在很慢。

标签: iis umbraco load-balancing nas


【解决方案1】:

使用 NAS 的全部意义在于您不一定需要虚拟目录。 CMS 的所有实例都有一个共享文件存储库。因为所有内容都存储在一个地方,所以您也不需要文件复制,但您必须确保后台可以单独访问它。

umbraco.config 是个例外。每个实例都需要存在此文件,因此您必须设置umbracoContentXMLUseLocalTemp = true。这允许在HttpRuntime.CodegenDir 目录(ASP.NET 存储临时文件的目录)中创建 umbraco.config 文件。

如果您注意到这与使用虚拟目录在性能上存在显着差异而不是,这可能是因为您没有对 HttpRuntime.CodegenDir 目录的写入权限(所以发生了什么是该网站每次都在访问数据库以获取其内容)。

首先检查这些权限,因为这个选项应该和使用虚拟目录一样快,并且维护更少。

【讨论】:

  • 感谢您的回复。我仔细检查了,应用程序池用户对 asp.net 临时文件拥有完全权限。当我发布内容更改时,我可以看到在 HttpRuntime.CodegenDir 中创建/更新的 web.config 文件。对于我应该审查的任何内容,您还有什么想法吗?
  • 您是说 umbraco.config 吗?这是 Umbraco 在运行时应该在 HttpRuntime.CodegenDir 文件夹中创建的文件。
  • 是的,你是对的。我的意思是在我之前的评论中说 umbraco.config。
【解决方案2】:

我最终使用 DFS 复制而不是 NAS 解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 2015-08-02
    • 2015-04-12
    相关资源
    最近更新 更多