1

问题

有没有办法限制默认为每个 Sitecore 站点创建的 MediaCache 文件夹的大小?Sitecore 6.2 文档说这是不可能的,但我们使用的是 6.4.1。

背景

我们有一个网站部署到三个负载平衡的 Sitecore 服务器。我们的 Search Appliance 专门使用其中一台服务器来索引我们的网站内容。由于它比普通用户更快地浏览我们的网站并消耗更多的数据,因此我们网站的 MediaCache 文件夹 (/App_Data/MediaCache/website) 会填满该 Web 服务器上的磁盘。我想我们可以完全禁用该服务器上的媒体缓存,但如果可能的话,我们更愿意在每个 Web 服务器之间保持相同的配置。

想法?

4

1 回答 1

5

MediaCache 文件夹填满的问题是什么?我想您在该服务器上有很多媒体项目和/或小(ish)磁盘大小?我还假设您没有使用 Lucene 进行索引,而是一个爬虫将访问每个页面并“报废” html,就像谷歌一样?为什么爬虫请求图像,而不仅仅是 HTML 标记?

我不知道有什么手头,可能有一些东西,但这意味着在 dotPeek 中查看 Sitecore 内核。

但是,使用现有的东西,您必须更改该服务器上的配置文件。

您可以将 MediaCache 文件夹清理任务设置为更快/更频繁地运行,但是您需要将父代理间隔设置为相同,因此这意味着更多的 Sitecore 喋喋不休。

<agent type="Sitecore.Tasks.CleanupAgent" method="Run" interval="00:01:00">
  <files hint="raw:AddCommand">
    <remove folder="/App_Data/MediaCache" pattern="*.*" maxAge="00:01:00" recursive="true" />
  </files>
</agent>

就个人而言,我只会使用补丁配置文件来禁用该文件夹的 MediaCache。但是,如果确实有那么多数据耗尽了磁盘空间,那么请确保您的服务器架构设置正确,否则将会出现大量网络流量。如果您在 3 个服务器之间有一个共享数据库,那么这可能是一个问题。

将以下内容添加到 .config 文件并放置在索引服务器上的 /App_Config/include/ 文件夹中。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <setting name="Media.CachingEnabled" value="false" />
    </settings>
  </sitecore>
</configuration>

或者对于特定网站,只需修补 <site name="website">元素并添加cacheMedia="false".

如果您的索引服务器与前端服务器具有不同的 URL,那么您可以考虑让索引服务器输出媒体项目的完整 URL,以便它们指向前端服务器。这样,图像就会被缓存在这些服务器上。

于 2013-01-30T20:39:33.823 回答